From 0b6aa4926213a9058da62643395348f3a94065ba Mon Sep 17 00:00:00 2001 From: Joel Speed Date: Tue, 22 Aug 2023 17:38:26 +0100 Subject: [PATCH] Remove reliance on controller-runtime scheme builder for remaining API groups --- .../kubeadm/api/v1beta1/groupversion_info.go | 17 +++++++++++++---- .../kubeadm/api/v1beta1/kubeadmconfig_types.go | 2 +- .../api/v1beta1/kubeadmconfigtemplate_types.go | 2 +- .../api/v1alpha3/groupversion_info.go | 17 +++++++++++++---- cmd/clusterctl/api/v1alpha3/metadata_type.go | 2 +- cmd/clusterctl/api/v1alpha3/provider_type.go | 2 +- .../api/v1alpha3/zz_generated.deepcopy.go | 2 +- .../kubeadm/api/v1beta1/groupversion_info.go | 17 +++++++++++++---- .../api/v1beta1/kubeadm_control_plane_types.go | 2 +- .../kubeadmcontrolplanetemplate_types.go | 2 +- .../docker/api/v1beta1/dockercluster_types.go | 2 +- .../api/v1beta1/dockerclustertemplate_types.go | 2 +- .../docker/api/v1beta1/dockermachine_types.go | 2 +- .../api/v1beta1/dockermachinetemplate_types.go | 2 +- .../docker/api/v1beta1/groupversion_info.go | 17 +++++++++++++---- .../exp/api/v1beta1/dockermachinepool_types.go | 2 +- .../docker/exp/api/v1beta1/groupversion_info.go | 17 +++++++++++++---- .../exp/api/v1beta1/zz_generated.deepcopy.go | 2 +- .../inmemory/api/v1alpha1/groupversion_info.go | 17 +++++++++++++---- .../api/v1alpha1/inmemorycluster_types.go | 2 +- .../v1alpha1/inmemoryclustertemplate_types.go | 2 +- .../api/v1alpha1/inmemorymachine_types.go | 2 +- .../v1alpha1/inmemorymachinetemplate_types.go | 2 +- 23 files changed, 95 insertions(+), 41 deletions(-) diff --git a/bootstrap/kubeadm/api/v1beta1/groupversion_info.go b/bootstrap/kubeadm/api/v1beta1/groupversion_info.go index 40f78556dadb..cbd72aecbcbe 100644 --- a/bootstrap/kubeadm/api/v1beta1/groupversion_info.go +++ b/bootstrap/kubeadm/api/v1beta1/groupversion_info.go @@ -20,17 +20,26 @@ limitations under the License. package v1beta1 import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" ) var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "bootstrap.cluster.x-k8s.io", Version: "v1beta1"} - // SchemeBuilder is used to add go types to the GroupVersionKind scheme. - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + // schemeBuilder is used to add go types to the GroupVersionKind scheme. + schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme + AddToScheme = schemeBuilder.AddToScheme + + objectTypes = []runtime.Object{} ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/bootstrap/kubeadm/api/v1beta1/kubeadmconfig_types.go b/bootstrap/kubeadm/api/v1beta1/kubeadmconfig_types.go index fc6ebee0dc0c..15aab57922ae 100644 --- a/bootstrap/kubeadm/api/v1beta1/kubeadmconfig_types.go +++ b/bootstrap/kubeadm/api/v1beta1/kubeadmconfig_types.go @@ -193,7 +193,7 @@ type KubeadmConfigList struct { } func init() { - SchemeBuilder.Register(&KubeadmConfig{}, &KubeadmConfigList{}) + objectTypes = append(objectTypes, &KubeadmConfig{}, &KubeadmConfigList{}) } // Encoding specifies the cloud-init file encoding. diff --git a/bootstrap/kubeadm/api/v1beta1/kubeadmconfigtemplate_types.go b/bootstrap/kubeadm/api/v1beta1/kubeadmconfigtemplate_types.go index 47e5691e16a9..4326cb4599c1 100644 --- a/bootstrap/kubeadm/api/v1beta1/kubeadmconfigtemplate_types.go +++ b/bootstrap/kubeadm/api/v1beta1/kubeadmconfigtemplate_types.go @@ -60,5 +60,5 @@ type KubeadmConfigTemplateList struct { } func init() { - SchemeBuilder.Register(&KubeadmConfigTemplate{}, &KubeadmConfigTemplateList{}) + objectTypes = append(objectTypes, &KubeadmConfigTemplate{}, &KubeadmConfigTemplateList{}) } diff --git a/cmd/clusterctl/api/v1alpha3/groupversion_info.go b/cmd/clusterctl/api/v1alpha3/groupversion_info.go index b5510698cde6..dffa6182d066 100644 --- a/cmd/clusterctl/api/v1alpha3/groupversion_info.go +++ b/cmd/clusterctl/api/v1alpha3/groupversion_info.go @@ -20,17 +20,26 @@ limitations under the License. package v1alpha3 import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" ) var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "clusterctl.cluster.x-k8s.io", Version: "v1alpha3"} - // SchemeBuilder is used to add go types to the GroupVersionKind scheme. - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + // schemeBuilder is used to add go types to the GroupVersionKind scheme. + schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme + AddToScheme = schemeBuilder.AddToScheme + + objectTypes = []runtime.Object{} ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/cmd/clusterctl/api/v1alpha3/metadata_type.go b/cmd/clusterctl/api/v1alpha3/metadata_type.go index 0009c160bec9..e2ab85a630ba 100644 --- a/cmd/clusterctl/api/v1alpha3/metadata_type.go +++ b/cmd/clusterctl/api/v1alpha3/metadata_type.go @@ -54,7 +54,7 @@ func (rs ReleaseSeries) newer(release ReleaseSeries) bool { } func init() { - SchemeBuilder.Register(&Metadata{}) + objectTypes = append(objectTypes, &Metadata{}) } // GetReleaseSeriesForVersion returns the release series for a given version. diff --git a/cmd/clusterctl/api/v1alpha3/provider_type.go b/cmd/clusterctl/api/v1alpha3/provider_type.go index 824861c15455..0c923646d659 100644 --- a/cmd/clusterctl/api/v1alpha3/provider_type.go +++ b/cmd/clusterctl/api/v1alpha3/provider_type.go @@ -222,5 +222,5 @@ func (l *ProviderList) filterBy(predicate func(p Provider) bool) []Provider { } func init() { - SchemeBuilder.Register(&Provider{}, &ProviderList{}) + objectTypes = append(objectTypes, &Provider{}, &ProviderList{}) } diff --git a/cmd/clusterctl/api/v1alpha3/zz_generated.deepcopy.go b/cmd/clusterctl/api/v1alpha3/zz_generated.deepcopy.go index 0dbb1edfc400..47ff72966254 100644 --- a/cmd/clusterctl/api/v1alpha3/zz_generated.deepcopy.go +++ b/cmd/clusterctl/api/v1alpha3/zz_generated.deepcopy.go @@ -21,7 +21,7 @@ limitations under the License. package v1alpha3 import ( - runtime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. diff --git a/controlplane/kubeadm/api/v1beta1/groupversion_info.go b/controlplane/kubeadm/api/v1beta1/groupversion_info.go index c7a7c5fdf216..4c2dadc700f9 100644 --- a/controlplane/kubeadm/api/v1beta1/groupversion_info.go +++ b/controlplane/kubeadm/api/v1beta1/groupversion_info.go @@ -20,17 +20,26 @@ limitations under the License. package v1beta1 import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" ) var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "controlplane.cluster.x-k8s.io", Version: "v1beta1"} - // SchemeBuilder is used to add go types to the GroupVersionKind scheme. - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + // schemeBuilder is used to add go types to the GroupVersionKind scheme. + schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme + AddToScheme = schemeBuilder.AddToScheme + + objectTypes = []runtime.Object{} ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/controlplane/kubeadm/api/v1beta1/kubeadm_control_plane_types.go b/controlplane/kubeadm/api/v1beta1/kubeadm_control_plane_types.go index 5272b0e5aae2..8e488f1876bc 100644 --- a/controlplane/kubeadm/api/v1beta1/kubeadm_control_plane_types.go +++ b/controlplane/kubeadm/api/v1beta1/kubeadm_control_plane_types.go @@ -359,5 +359,5 @@ type KubeadmControlPlaneList struct { } func init() { - SchemeBuilder.Register(&KubeadmControlPlane{}, &KubeadmControlPlaneList{}) + objectTypes = append(objectTypes, &KubeadmControlPlane{}, &KubeadmControlPlaneList{}) } diff --git a/controlplane/kubeadm/api/v1beta1/kubeadmcontrolplanetemplate_types.go b/controlplane/kubeadm/api/v1beta1/kubeadmcontrolplanetemplate_types.go index 69a1541d0397..478e30c7e786 100644 --- a/controlplane/kubeadm/api/v1beta1/kubeadmcontrolplanetemplate_types.go +++ b/controlplane/kubeadm/api/v1beta1/kubeadmcontrolplanetemplate_types.go @@ -51,7 +51,7 @@ type KubeadmControlPlaneTemplateList struct { } func init() { - SchemeBuilder.Register(&KubeadmControlPlaneTemplate{}, &KubeadmControlPlaneTemplateList{}) + objectTypes = append(objectTypes, &KubeadmControlPlaneTemplate{}, &KubeadmControlPlaneTemplateList{}) } // KubeadmControlPlaneTemplateResource describes the data needed to create a KubeadmControlPlane from a template. diff --git a/test/infrastructure/docker/api/v1beta1/dockercluster_types.go b/test/infrastructure/docker/api/v1beta1/dockercluster_types.go index 617938a6ee67..dd14f9184ce5 100644 --- a/test/infrastructure/docker/api/v1beta1/dockercluster_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockercluster_types.go @@ -143,5 +143,5 @@ type DockerClusterList struct { } func init() { - SchemeBuilder.Register(&DockerCluster{}, &DockerClusterList{}) + objectTypes = append(objectTypes, &DockerCluster{}, &DockerClusterList{}) } diff --git a/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_types.go b/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_types.go index 52ccf5cde63a..3dc77d87edf0 100644 --- a/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockerclustertemplate_types.go @@ -50,7 +50,7 @@ type DockerClusterTemplateList struct { } func init() { - SchemeBuilder.Register(&DockerClusterTemplate{}, &DockerClusterTemplateList{}) + objectTypes = append(objectTypes, &DockerClusterTemplate{}, &DockerClusterTemplateList{}) } // DockerClusterTemplateResource describes the data needed to create a DockerCluster from a template. diff --git a/test/infrastructure/docker/api/v1beta1/dockermachine_types.go b/test/infrastructure/docker/api/v1beta1/dockermachine_types.go index d99e30be5455..7fbba3276f75 100644 --- a/test/infrastructure/docker/api/v1beta1/dockermachine_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockermachine_types.go @@ -133,5 +133,5 @@ type DockerMachineList struct { } func init() { - SchemeBuilder.Register(&DockerMachine{}, &DockerMachineList{}) + objectTypes = append(objectTypes, &DockerMachine{}, &DockerMachineList{}) } diff --git a/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_types.go b/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_types.go index 633913ca7d4b..7993397db001 100644 --- a/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_types.go +++ b/test/infrastructure/docker/api/v1beta1/dockermachinetemplate_types.go @@ -50,7 +50,7 @@ type DockerMachineTemplateList struct { } func init() { - SchemeBuilder.Register(&DockerMachineTemplate{}, &DockerMachineTemplateList{}) + objectTypes = append(objectTypes, &DockerMachineTemplate{}, &DockerMachineTemplateList{}) } // DockerMachineTemplateResource describes the data needed to create a DockerMachine from a template. diff --git a/test/infrastructure/docker/api/v1beta1/groupversion_info.go b/test/infrastructure/docker/api/v1beta1/groupversion_info.go index 3715bbfa5beb..69fcc438b79e 100644 --- a/test/infrastructure/docker/api/v1beta1/groupversion_info.go +++ b/test/infrastructure/docker/api/v1beta1/groupversion_info.go @@ -20,17 +20,26 @@ limitations under the License. package v1beta1 import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" ) var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta1"} - // SchemeBuilder is used to add go types to the GroupVersionKind scheme. - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + // schemeBuilder is used to add go types to the GroupVersionKind scheme. + schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme + AddToScheme = schemeBuilder.AddToScheme + + objectTypes = []runtime.Object{} ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/test/infrastructure/docker/exp/api/v1beta1/dockermachinepool_types.go b/test/infrastructure/docker/exp/api/v1beta1/dockermachinepool_types.go index 273475366b4b..13493944938c 100644 --- a/test/infrastructure/docker/exp/api/v1beta1/dockermachinepool_types.go +++ b/test/infrastructure/docker/exp/api/v1beta1/dockermachinepool_types.go @@ -149,5 +149,5 @@ type DockerMachinePoolList struct { } func init() { - SchemeBuilder.Register(&DockerMachinePool{}, &DockerMachinePoolList{}) + objectTypes = append(objectTypes, &DockerMachinePool{}, &DockerMachinePoolList{}) } diff --git a/test/infrastructure/docker/exp/api/v1beta1/groupversion_info.go b/test/infrastructure/docker/exp/api/v1beta1/groupversion_info.go index 3715bbfa5beb..fb8da4a7b2aa 100644 --- a/test/infrastructure/docker/exp/api/v1beta1/groupversion_info.go +++ b/test/infrastructure/docker/exp/api/v1beta1/groupversion_info.go @@ -20,17 +20,26 @@ limitations under the License. package v1beta1 import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" ) var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta1"} - // SchemeBuilder is used to add go types to the GroupVersionKind scheme. - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + // schemeBuilder is used to add go types to the GroupVersionKind scheme. + schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme + AddToScheme = schemeBuilder.AddToScheme + + objectTypes = []runtime.Object{} ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/test/infrastructure/docker/exp/api/v1beta1/zz_generated.deepcopy.go b/test/infrastructure/docker/exp/api/v1beta1/zz_generated.deepcopy.go index 4fcb68959f2a..97e75d41f55b 100644 --- a/test/infrastructure/docker/exp/api/v1beta1/zz_generated.deepcopy.go +++ b/test/infrastructure/docker/exp/api/v1beta1/zz_generated.deepcopy.go @@ -21,7 +21,7 @@ limitations under the License. package v1beta1 import ( - runtime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" cluster_apiapiv1beta1 "sigs.k8s.io/cluster-api/api/v1beta1" apiv1beta1 "sigs.k8s.io/cluster-api/test/infrastructure/docker/api/v1beta1" ) diff --git a/test/infrastructure/inmemory/api/v1alpha1/groupversion_info.go b/test/infrastructure/inmemory/api/v1alpha1/groupversion_info.go index 3c67f8aca20f..fefc6f3afdf9 100644 --- a/test/infrastructure/inmemory/api/v1alpha1/groupversion_info.go +++ b/test/infrastructure/inmemory/api/v1alpha1/groupversion_info.go @@ -20,17 +20,26 @@ limitations under the License. package v1alpha1 import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" ) var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha1"} - // SchemeBuilder is used to add go types to the GroupVersionKind scheme. - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + // schemeBuilder is used to add go types to the GroupVersionKind scheme. + schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme + AddToScheme = schemeBuilder.AddToScheme + + objectTypes = []runtime.Object{} ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/test/infrastructure/inmemory/api/v1alpha1/inmemorycluster_types.go b/test/infrastructure/inmemory/api/v1alpha1/inmemorycluster_types.go index 865d85b77002..1925a5803098 100644 --- a/test/infrastructure/inmemory/api/v1alpha1/inmemorycluster_types.go +++ b/test/infrastructure/inmemory/api/v1alpha1/inmemorycluster_types.go @@ -95,5 +95,5 @@ type InMemoryClusterList struct { } func init() { - SchemeBuilder.Register(&InMemoryCluster{}, &InMemoryClusterList{}) + objectTypes = append(objectTypes, &InMemoryCluster{}, &InMemoryClusterList{}) } diff --git a/test/infrastructure/inmemory/api/v1alpha1/inmemoryclustertemplate_types.go b/test/infrastructure/inmemory/api/v1alpha1/inmemoryclustertemplate_types.go index 51ca515ae673..30d09af74a30 100644 --- a/test/infrastructure/inmemory/api/v1alpha1/inmemoryclustertemplate_types.go +++ b/test/infrastructure/inmemory/api/v1alpha1/inmemoryclustertemplate_types.go @@ -50,7 +50,7 @@ type InMemoryClusterTemplateList struct { } func init() { - SchemeBuilder.Register(&InMemoryClusterTemplate{}, &InMemoryClusterTemplateList{}) + objectTypes = append(objectTypes, &InMemoryClusterTemplate{}, &InMemoryClusterTemplateList{}) } // InMemoryClusterTemplateResource describes the data needed to create a InMemoryCluster from a template. diff --git a/test/infrastructure/inmemory/api/v1alpha1/inmemorymachine_types.go b/test/infrastructure/inmemory/api/v1alpha1/inmemorymachine_types.go index bf6b0d1b908d..ad60f404cd74 100644 --- a/test/infrastructure/inmemory/api/v1alpha1/inmemorymachine_types.go +++ b/test/infrastructure/inmemory/api/v1alpha1/inmemorymachine_types.go @@ -187,5 +187,5 @@ type InMemoryMachineList struct { } func init() { - SchemeBuilder.Register(&InMemoryMachine{}, &InMemoryMachineList{}) + objectTypes = append(objectTypes, &InMemoryMachine{}, &InMemoryMachineList{}) } diff --git a/test/infrastructure/inmemory/api/v1alpha1/inmemorymachinetemplate_types.go b/test/infrastructure/inmemory/api/v1alpha1/inmemorymachinetemplate_types.go index fbecead461a8..63215f1e7cd2 100644 --- a/test/infrastructure/inmemory/api/v1alpha1/inmemorymachinetemplate_types.go +++ b/test/infrastructure/inmemory/api/v1alpha1/inmemorymachinetemplate_types.go @@ -50,7 +50,7 @@ type InMemoryMachineTemplateList struct { } func init() { - SchemeBuilder.Register(&InMemoryMachineTemplate{}, &InMemoryMachineTemplateList{}) + objectTypes = append(objectTypes, &InMemoryMachineTemplate{}, &InMemoryMachineTemplateList{}) } // InMemoryMachineTemplateResource describes the data needed to create a InMemoryMachine from a template.