From 3aced2bfa27ee9aece79ad956cd334b05a85e301 Mon Sep 17 00:00:00 2001 From: Dan Ramich Date: Wed, 28 Aug 2019 16:35:54 -0700 Subject: [PATCH] Update APIs being used --- apis/management.cattle.io/v3/authz_types.go | 6 +-- apis/project.cattle.io/v3/schema/schema.go | 41 +++++++++++---------- config/context.go | 26 ++++++++++--- main.go | 41 +++++++++++++-------- 4 files changed, 70 insertions(+), 44 deletions(-) diff --git a/apis/management.cattle.io/v3/authz_types.go b/apis/management.cattle.io/v3/authz_types.go index 236e9e43..dc59ac9f 100644 --- a/apis/management.cattle.io/v3/authz_types.go +++ b/apis/management.cattle.io/v3/authz_types.go @@ -4,7 +4,7 @@ import ( "github.com/rancher/norman/condition" "github.com/rancher/norman/types" v1 "k8s.io/api/core/v1" - extv1 "k8s.io/api/extensions/v1beta1" + policyv1 "k8s.io/api/policy/v1beta1" rbacv1 "k8s.io/api/rbac/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -99,8 +99,8 @@ type PodSecurityPolicyTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - Description string `json:"description"` - Spec extv1.PodSecurityPolicySpec `json:"spec,omitempty"` + Description string `json:"description"` + Spec policyv1.PodSecurityPolicySpec `json:"spec,omitempty"` } type PodSecurityPolicyTemplateProjectBinding struct { diff --git a/apis/project.cattle.io/v3/schema/schema.go b/apis/project.cattle.io/v3/schema/schema.go index c97f3cd9..1a2a3783 100644 --- a/apis/project.cattle.io/v3/schema/schema.go +++ b/apis/project.cattle.io/v3/schema/schema.go @@ -10,7 +10,8 @@ import ( v3 "github.com/rancher/types/apis/project.cattle.io/v3" "github.com/rancher/types/factory" "github.com/rancher/types/mapper" - "k8s.io/api/apps/v1beta2" + appsv1 "k8s.io/api/apps/v1" + k8sappv1 "k8s.io/api/apps/v1" autoscaling "k8s.io/api/autoscaling/v2beta2" batchv1 "k8s.io/api/batch/v1" batchv1beta1 "k8s.io/api/batch/v1beta1" @@ -136,7 +137,7 @@ func workloadTypes(schemas *types.Schemas) *types.Schemas { func statefulSetTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1beta2.StatefulSetUpdateStrategy{}, + AddMapperForType(&Version, k8sappv1.StatefulSetUpdateStrategy{}, &m.Embed{Field: "rollingUpdate"}, m.Enum{Field: "type", Options: []string{ "RollingUpdate", @@ -144,7 +145,7 @@ func statefulSetTypes(schemas *types.Schemas) *types.Schemas { }}, m.Move{From: "type", To: "strategy"}, ). - AddMapperForType(&Version, v1beta2.StatefulSetSpec{}, + AddMapperForType(&Version, k8sappv1.StatefulSetSpec{}, &m.Move{ From: "replicas", To: "scale", @@ -171,15 +172,15 @@ func statefulSetTypes(schemas *types.Schemas) *types.Schemas { &m.Embed{Field: "template"}, ). MustImport(&Version, v3.WorkloadMetric{}). - AddMapperForType(&Version, v1beta2.StatefulSet{}, + AddMapperForType(&Version, k8sappv1.StatefulSet{}, &m.Move{ From: "status", To: "statefulSetStatus", }, NewWorkloadTypeMapper(), ). - MustImport(&Version, v1beta2.StatefulSetSpec{}, statefulSetConfigOverride{}). - MustImportAndCustomize(&Version, v1beta2.StatefulSet{}, func(schema *types.Schema) { + MustImport(&Version, k8sappv1.StatefulSetSpec{}, statefulSetConfigOverride{}). + MustImportAndCustomize(&Version, k8sappv1.StatefulSet{}, func(schema *types.Schema) { schema.BaseType = "workload" schema.MustCustomizeField("name", func(field types.Field) types.Field { field.Type = "dnsLabelRestricted" @@ -195,7 +196,7 @@ func statefulSetTypes(schemas *types.Schemas) *types.Schemas { func replicaSetTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1beta1.ReplicaSetSpec{}, + AddMapperForType(&Version, appsv1.ReplicaSetSpec{}, &m.Move{ From: "replicas", To: "scale", @@ -206,7 +207,7 @@ func replicaSetTypes(schemas *types.Schemas) *types.Schemas { }, ). MustImport(&Version, v3.WorkloadMetric{}). - AddMapperForType(&Version, v1beta1.ReplicaSet{}, + AddMapperForType(&Version, appsv1.ReplicaSet{}, &m.Move{ From: "status", To: "replicaSetStatus", @@ -214,8 +215,8 @@ func replicaSetTypes(schemas *types.Schemas) *types.Schemas { &m.Embed{Field: "template"}, NewWorkloadTypeMapper(), ). - MustImport(&Version, v1beta1.ReplicaSetSpec{}, replicaSetConfigOverride{}). - MustImportAndCustomize(&Version, v1beta1.ReplicaSet{}, func(schema *types.Schema) { + MustImport(&Version, appsv1.ReplicaSetSpec{}, replicaSetConfigOverride{}). + MustImportAndCustomize(&Version, appsv1.ReplicaSet{}, func(schema *types.Schema) { schema.BaseType = "workload" schema.MustCustomizeField("name", func(field types.Field) types.Field { field.Type = "dnsLabelRestricted" @@ -269,7 +270,7 @@ func replicationControllerTypes(schemas *types.Schemas) *types.Schemas { func daemonSetTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1beta2.DaemonSetUpdateStrategy{}, + AddMapperForType(&Version, k8sappv1.DaemonSetUpdateStrategy{}, &m.Embed{Field: "rollingUpdate"}, m.Enum{Field: "type", Options: []string{ "RollingUpdate", @@ -277,7 +278,7 @@ func daemonSetTypes(schemas *types.Schemas) *types.Schemas { }}, m.Move{From: "type", To: "strategy"}, ). - AddMapperForType(&Version, v1beta2.DaemonSetSpec{}, + AddMapperForType(&Version, k8sappv1.DaemonSetSpec{}, &m.Embed{Field: "updateStrategy"}, &m.BatchMove{ From: []string{ @@ -291,15 +292,15 @@ func daemonSetTypes(schemas *types.Schemas) *types.Schemas { &m.Embed{Field: "template"}, ). MustImport(&Version, v3.WorkloadMetric{}). - AddMapperForType(&Version, v1beta2.DaemonSet{}, + AddMapperForType(&Version, k8sappv1.DaemonSet{}, &m.Move{ From: "status", To: "daemonSetStatus", }, NewWorkloadTypeMapper(), ). - MustImport(&Version, v1beta2.DaemonSetSpec{}, daemonSetOverride{}). - MustImportAndCustomize(&Version, v1beta2.DaemonSet{}, func(schema *types.Schema) { + MustImport(&Version, k8sappv1.DaemonSetSpec{}, daemonSetOverride{}). + MustImportAndCustomize(&Version, k8sappv1.DaemonSet{}, func(schema *types.Schema) { schema.BaseType = "workload" schema.MustCustomizeField("name", func(field types.Field) types.Field { field.Type = "dnsLabelRestricted" @@ -421,7 +422,7 @@ func cronJobTypes(schemas *types.Schemas) *types.Schemas { func deploymentTypes(schemas *types.Schemas) *types.Schemas { return schemas. - AddMapperForType(&Version, v1beta2.DeploymentStrategy{}, + AddMapperForType(&Version, k8sappv1.DeploymentStrategy{}, &m.Embed{Field: "rollingUpdate", EmptyValueOk: true}, m.Enum{Field: "type", Options: []string{ "Recreate", @@ -429,7 +430,7 @@ func deploymentTypes(schemas *types.Schemas) *types.Schemas { }}, m.Move{From: "type", To: "strategy"}, ). - AddMapperForType(&Version, v1beta2.DeploymentSpec{}, + AddMapperForType(&Version, k8sappv1.DeploymentSpec{}, &m.Move{ From: "strategy", To: "upgradeStrategy", @@ -453,16 +454,16 @@ func deploymentTypes(schemas *types.Schemas) *types.Schemas { &m.Embed{Field: "template"}, ). MustImport(&Version, v3.WorkloadMetric{}). - AddMapperForType(&Version, v1beta2.Deployment{}, + AddMapperForType(&Version, k8sappv1.Deployment{}, &m.Move{ From: "status", To: "deploymentStatus", }, NewWorkloadTypeMapper(), ). - MustImport(&Version, v1beta2.DeploymentSpec{}, deploymentConfigOverride{}). + MustImport(&Version, k8sappv1.DeploymentSpec{}, deploymentConfigOverride{}). MustImport(&Version, v3.DeploymentRollbackInput{}). - MustImportAndCustomize(&Version, v1beta2.Deployment{}, func(schema *types.Schema) { + MustImportAndCustomize(&Version, k8sappv1.Deployment{}, func(schema *types.Schema) { schema.BaseType = "workload" schema.ResourceActions = map[string]types.Action{ "rollback": { diff --git a/config/context.go b/config/context.go index 791c7ec6..e1a22853 100644 --- a/config/context.go +++ b/config/context.go @@ -9,7 +9,7 @@ import ( "github.com/rancher/norman/store/proxy" "github.com/rancher/norman/types" apiregistrationv1 "github.com/rancher/types/apis/apiregistration.k8s.io/v1" - appsv1beta2 "github.com/rancher/types/apis/apps/v1beta2" + appsv1 "github.com/rancher/types/apis/apps/v1" autoscaling "github.com/rancher/types/apis/autoscaling/v2beta2" batchv1 "github.com/rancher/types/apis/batch/v1" batchv1beta1 "github.com/rancher/types/apis/batch/v1beta1" @@ -22,6 +22,7 @@ import ( monitoringv1 "github.com/rancher/types/apis/monitoring.coreos.com/v1" istiov1alpha3 "github.com/rancher/types/apis/networking.istio.io/v1alpha3" knetworkingv1 "github.com/rancher/types/apis/networking.k8s.io/v1" + policyv1beta1 "github.com/rancher/types/apis/policy/v1beta1" projectv3 "github.com/rancher/types/apis/project.cattle.io/v3" projectSchema "github.com/rancher/types/apis/project.cattle.io/v3/schema" rbacv1 "github.com/rancher/types/apis/rbac.authorization.k8s.io/v1" @@ -181,7 +182,7 @@ type UserContext struct { K8sClient kubernetes.Interface APIAggregation apiregistrationv1.Interface - Apps appsv1beta2.Interface + Apps appsv1.Interface Autoscaling autoscaling.Interface Project projectv3.Interface Core corev1.Interface @@ -194,6 +195,7 @@ type UserContext struct { Cluster clusterv3.Interface Istio istiov1alpha3.Interface Storage storagev1.Interface + Policy policyv1beta1.Interface } func (w *UserContext) controllers() []controller.Starter { @@ -210,6 +212,7 @@ func (w *UserContext) controllers() []controller.Starter { w.Monitoring, w.Cluster, w.Storage, + w.Policy, } } @@ -233,6 +236,7 @@ func (w *UserContext) UserOnlyContext() *UserOnlyContext { Cluster: w.Cluster, Istio: w.Istio, Storage: w.Storage, + Policy: w.Policy, } } @@ -244,7 +248,7 @@ type UserOnlyContext struct { K8sClient kubernetes.Interface APIRegistration apiregistrationv1.Interface - Apps appsv1beta2.Interface + Apps appsv1.Interface Autoscaling autoscaling.Interface Project projectv3.Interface Core corev1.Interface @@ -256,6 +260,7 @@ type UserOnlyContext struct { Cluster clusterv3.Interface Istio istiov1alpha3.Interface Storage storagev1.Interface + Policy policyv1beta1.Interface } func (w *UserOnlyContext) controllers() []controller.Starter { @@ -270,6 +275,7 @@ func (w *UserOnlyContext) controllers() []controller.Starter { w.BatchV1Beta1, w.Monitoring, w.Storage, + w.Policy, } } @@ -364,7 +370,7 @@ func NewUserContext(scaledContext *ScaledContext, config rest.Config, clusterNam return nil, err } - context.Apps, err = appsv1beta2.NewForConfig(config) + context.Apps, err = appsv1.NewForConfig(config) if err != nil { return nil, err } @@ -399,6 +405,11 @@ func NewUserContext(scaledContext *ScaledContext, config rest.Config, clusterNam return nil, err } + context.Policy, err = policyv1beta1.NewForConfig(config) + if err != nil { + return nil, err + } + context.BatchV1, err = batchv1.NewForConfig(config) if err != nil { return nil, err @@ -470,7 +481,7 @@ func NewUserOnlyContext(config rest.Config) (*UserOnlyContext, error) { return nil, err } - context.Apps, err = appsv1beta2.NewForConfig(config) + context.Apps, err = appsv1.NewForConfig(config) if err != nil { return nil, err } @@ -500,6 +511,11 @@ func NewUserOnlyContext(config rest.Config) (*UserOnlyContext, error) { return nil, err } + context.Policy, err = policyv1beta1.NewForConfig(config) + if err != nil { + return nil, err + } + context.BatchV1, err = batchv1.NewForConfig(config) if err != nil { return nil, err diff --git a/main.go b/main.go index 1eb4555d..754dcf58 100644 --- a/main.go +++ b/main.go @@ -11,14 +11,15 @@ import ( publicSchema "github.com/rancher/types/apis/management.cattle.io/v3public/schema" projectSchema "github.com/rancher/types/apis/project.cattle.io/v3/schema" "github.com/rancher/types/generator" - "k8s.io/api/apps/v1beta2" + + appsv1 "k8s.io/api/apps/v1" + scalingv2beta2 "k8s.io/api/autoscaling/v2beta2" batchv1 "k8s.io/api/batch/v1" batchv1beta1 "k8s.io/api/batch/v1beta1" - - scalingv2beta2 "k8s.io/api/autoscaling/v2beta2" v1 "k8s.io/api/core/v1" extv1beta1 "k8s.io/api/extensions/v1beta1" knetworkingv1 "k8s.io/api/networking/v1" + policyv1beta1 "k8s.io/api/policy/v1beta1" rbacv1 "k8s.io/api/rbac/v1" storagev1 "k8s.io/api/storage/v1" k8sschema "k8s.io/apimachinery/pkg/runtime/schema" @@ -53,11 +54,11 @@ func main() { v1.Namespace{}, v1.Event{}, }) - generator.GenerateNativeTypes(v1beta2.SchemeGroupVersion, []interface{}{ - v1beta2.Deployment{}, - v1beta2.DaemonSet{}, - v1beta2.StatefulSet{}, - v1beta2.ReplicaSet{}, + generator.GenerateNativeTypes(appsv1.SchemeGroupVersion, []interface{}{ + appsv1.Deployment{}, + appsv1.DaemonSet{}, + appsv1.StatefulSet{}, + appsv1.ReplicaSet{}, }, nil) generator.GenerateNativeTypes(rbacv1.SchemeGroupVersion, []interface{}{ rbacv1.RoleBinding{}, @@ -79,13 +80,20 @@ func main() { []interface{}{ extv1beta1.Ingress{}, }, + nil, + ) + generator.GenerateNativeTypes(policyv1beta1.SchemeGroupVersion, + nil, []interface{}{ - extv1beta1.PodSecurityPolicy{}, + policyv1beta1.PodSecurityPolicy{}, + }, + ) + generator.GenerateNativeTypes(storagev1.SchemeGroupVersion, + nil, + []interface{}{ + storagev1.StorageClass{}, }, ) - generator.GenerateNativeTypes(storagev1.SchemeGroupVersion, nil, []interface{}{ - storagev1.StorageClass{}, - }) generator.GenerateNativeTypes( k8sschema.GroupVersion{Group: monitoringv1.Group, Version: monitoringv1.Version}, []interface{}{ @@ -94,23 +102,24 @@ func main() { monitoringv1.PrometheusRule{}, monitoringv1.ServiceMonitor{}, }, - []interface{}{}, + nil, ) generator.GenerateNativeTypes(scalingv2beta2.SchemeGroupVersion, []interface{}{ scalingv2beta2.HorizontalPodAutoscaler{}, }, - []interface{}{}, + nil, ) generator.GenerateNativeTypes(istiov1alpha3.SchemeGroupVersion, []interface{}{ istiov1alpha3.VirtualService{}, istiov1alpha3.DestinationRule{}, }, - []interface{}{}, + nil, ) generator.GenerateNativeTypes(apiregistrationv1.SchemeGroupVersion, - []interface{}{}, []interface{}{ + nil, + []interface{}{ apiregistrationv1.APIService{}, }, )