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  }