github.com/rancher/types@v0.0.0-20220328215343-4370ff10ecd5/main.go (about) 1 //go:generate go run generator/cleanup/main.go 2 //go:generate go run main.go 3 4 package main 5 6 import ( 7 monitoring "github.com/coreos/prometheus-operator/pkg/apis/monitoring" 8 monitoringv1 "github.com/coreos/prometheus-operator/pkg/apis/monitoring/v1" 9 istiov1alpha3 "github.com/knative/pkg/apis/istio/v1alpha3" 10 clusterSchema "github.com/rancher/types/apis/cluster.cattle.io/v3/schema" 11 managementSchema "github.com/rancher/types/apis/management.cattle.io/v3/schema" 12 publicSchema "github.com/rancher/types/apis/management.cattle.io/v3public/schema" 13 projectSchema "github.com/rancher/types/apis/project.cattle.io/v3/schema" 14 "github.com/rancher/types/generator" 15 16 appsv1 "k8s.io/api/apps/v1" 17 scalingv2beta2 "k8s.io/api/autoscaling/v2beta2" 18 batchv1 "k8s.io/api/batch/v1" 19 batchv1beta1 "k8s.io/api/batch/v1beta1" 20 v1 "k8s.io/api/core/v1" 21 extv1beta1 "k8s.io/api/extensions/v1beta1" 22 knetworkingv1 "k8s.io/api/networking/v1" 23 policyv1beta1 "k8s.io/api/policy/v1beta1" 24 rbacv1 "k8s.io/api/rbac/v1" 25 storagev1 "k8s.io/api/storage/v1" 26 k8sschema "k8s.io/apimachinery/pkg/runtime/schema" 27 apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1" 28 ) 29 30 func main() { 31 generator.GenerateComposeType(projectSchema.Schemas, managementSchema.Schemas, clusterSchema.Schemas) 32 generator.Generate(managementSchema.Schemas, map[string]bool{ 33 "userAttribute": true, 34 }) 35 generator.Generate(publicSchema.PublicSchemas, nil) 36 generator.Generate(clusterSchema.Schemas, map[string]bool{ 37 "clusterUserAttribute": true, 38 "clusterAuthToken": true, 39 }) 40 generator.Generate(projectSchema.Schemas, nil) 41 generator.GenerateNativeTypes(v1.SchemeGroupVersion, []interface{}{ 42 v1.Endpoints{}, 43 v1.PersistentVolumeClaim{}, 44 v1.Pod{}, 45 v1.Service{}, 46 v1.Secret{}, 47 v1.ConfigMap{}, 48 v1.ServiceAccount{}, 49 v1.ReplicationController{}, 50 v1.ResourceQuota{}, 51 v1.LimitRange{}, 52 }, []interface{}{ 53 v1.Node{}, 54 v1.ComponentStatus{}, 55 v1.Namespace{}, 56 v1.Event{}, 57 }) 58 generator.GenerateNativeTypes(appsv1.SchemeGroupVersion, []interface{}{ 59 appsv1.Deployment{}, 60 appsv1.DaemonSet{}, 61 appsv1.StatefulSet{}, 62 appsv1.ReplicaSet{}, 63 }, nil) 64 generator.GenerateNativeTypes(rbacv1.SchemeGroupVersion, []interface{}{ 65 rbacv1.RoleBinding{}, 66 rbacv1.Role{}, 67 }, []interface{}{ 68 rbacv1.ClusterRoleBinding{}, 69 rbacv1.ClusterRole{}, 70 }) 71 generator.GenerateNativeTypes(knetworkingv1.SchemeGroupVersion, []interface{}{ 72 knetworkingv1.NetworkPolicy{}, 73 }, nil) 74 generator.GenerateNativeTypes(batchv1.SchemeGroupVersion, []interface{}{ 75 batchv1.Job{}, 76 }, nil) 77 generator.GenerateNativeTypes(batchv1beta1.SchemeGroupVersion, []interface{}{ 78 batchv1beta1.CronJob{}, 79 }, nil) 80 generator.GenerateNativeTypes(extv1beta1.SchemeGroupVersion, 81 []interface{}{ 82 extv1beta1.Ingress{}, 83 }, 84 nil, 85 ) 86 generator.GenerateNativeTypes(policyv1beta1.SchemeGroupVersion, 87 nil, 88 []interface{}{ 89 policyv1beta1.PodSecurityPolicy{}, 90 }, 91 ) 92 generator.GenerateNativeTypes(storagev1.SchemeGroupVersion, 93 nil, 94 []interface{}{ 95 storagev1.StorageClass{}, 96 }, 97 ) 98 generator.GenerateNativeTypes( 99 k8sschema.GroupVersion{Group: monitoring.GroupName, Version: monitoringv1.Version}, 100 []interface{}{ 101 monitoringv1.Prometheus{}, 102 monitoringv1.Alertmanager{}, 103 monitoringv1.PrometheusRule{}, 104 monitoringv1.ServiceMonitor{}, 105 }, 106 nil, 107 ) 108 generator.GenerateNativeTypes(scalingv2beta2.SchemeGroupVersion, 109 []interface{}{ 110 scalingv2beta2.HorizontalPodAutoscaler{}, 111 }, 112 nil, 113 ) 114 generator.GenerateNativeTypes(istiov1alpha3.SchemeGroupVersion, 115 []interface{}{ 116 istiov1alpha3.VirtualService{}, 117 istiov1alpha3.DestinationRule{}, 118 }, 119 nil, 120 ) 121 generator.GenerateNativeTypes(apiregistrationv1.SchemeGroupVersion, 122 nil, 123 []interface{}{ 124 apiregistrationv1.APIService{}, 125 }, 126 ) 127 }