From f65dc3f87da8150692b9c33e058414fdd7e34990 Mon Sep 17 00:00:00 2001 From: Joel Speed Date: Tue, 18 Jul 2023 15:37:36 +0100 Subject: [PATCH] Remove reliance on controller-runtime scheme builder --- api/v1beta1/cluster_types.go | 2 +- api/v1beta1/clusterclass_types.go | 2 +- api/v1beta1/groupversion_info.go | 13 +++++++++++-- api/v1beta1/machine_types.go | 2 +- api/v1beta1/machinedeployment_types.go | 2 +- api/v1beta1/machinedeployment_webhook_test.go | 5 +++-- api/v1beta1/machinehealthcheck_types.go | 2 +- api/v1beta1/machineset_types.go | 2 +- internal/test/builder/builders.go | 5 +++-- 9 files changed, 23 insertions(+), 12 deletions(-) diff --git a/api/v1beta1/cluster_types.go b/api/v1beta1/cluster_types.go index ffc1f05063cf..108e0bfadea3 100644 --- a/api/v1beta1/cluster_types.go +++ b/api/v1beta1/cluster_types.go @@ -599,7 +599,7 @@ type ClusterList struct { } func init() { - SchemeBuilder.Register(&Cluster{}, &ClusterList{}) + objectTypes = append(objectTypes, &Cluster{}, &ClusterList{}) } // FailureDomains is a slice of FailureDomains. diff --git a/api/v1beta1/clusterclass_types.go b/api/v1beta1/clusterclass_types.go index 32680505740b..f699df58143d 100644 --- a/api/v1beta1/clusterclass_types.go +++ b/api/v1beta1/clusterclass_types.go @@ -706,5 +706,5 @@ type ClusterClassList struct { } func init() { - SchemeBuilder.Register(&ClusterClass{}, &ClusterClassList{}) + objectTypes = append(objectTypes, &ClusterClass{}, &ClusterClassList{}) } diff --git a/api/v1beta1/groupversion_info.go b/api/v1beta1/groupversion_info.go index 2d118b8de8f7..aab956e32d3b 100644 --- a/api/v1beta1/groupversion_info.go +++ b/api/v1beta1/groupversion_info.go @@ -20,8 +20,9 @@ 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 ( @@ -29,8 +30,16 @@ var ( GroupVersion = schema.GroupVersion{Group: "cluster.x-k8s.io", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme adds the types in this group-version to the given scheme. 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/api/v1beta1/machine_types.go b/api/v1beta1/machine_types.go index ee9597306cec..e6e0fa8fe0cf 100644 --- a/api/v1beta1/machine_types.go +++ b/api/v1beta1/machine_types.go @@ -307,5 +307,5 @@ type MachineList struct { } func init() { - SchemeBuilder.Register(&Machine{}, &MachineList{}) + objectTypes = append(objectTypes, &Machine{}, &MachineList{}) } diff --git a/api/v1beta1/machinedeployment_types.go b/api/v1beta1/machinedeployment_types.go index 3bd0109fbc7a..88d43370b9f1 100644 --- a/api/v1beta1/machinedeployment_types.go +++ b/api/v1beta1/machinedeployment_types.go @@ -337,7 +337,7 @@ type MachineDeploymentList struct { } func init() { - SchemeBuilder.Register(&MachineDeployment{}, &MachineDeploymentList{}) + objectTypes = append(objectTypes, &MachineDeployment{}, &MachineDeploymentList{}) } // GetConditions returns the set of conditions for the machinedeployment. diff --git a/api/v1beta1/machinedeployment_webhook_test.go b/api/v1beta1/machinedeployment_webhook_test.go index 90688a101aa0..40a8940417fa 100644 --- a/api/v1beta1/machinedeployment_webhook_test.go +++ b/api/v1beta1/machinedeployment_webhook_test.go @@ -23,6 +23,7 @@ import ( . "github.com/onsi/gomega" admissionv1 "k8s.io/api/admission/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/utils/pointer" "sigs.k8s.io/controller-runtime/pkg/webhook/admission" @@ -44,8 +45,8 @@ func TestMachineDeploymentDefault(t *testing.T) { }, } - scheme, err := SchemeBuilder.Build() - g.Expect(err).ToNot(HaveOccurred()) + scheme := runtime.NewScheme() + g.Expect(SchemeBuilder.AddToScheme(scheme)).To(Succeed()) defaulter := MachineDeploymentDefaulter(scheme) t.Run("for MachineDeployment", defaultValidateTestCustomDefaulter(md, defaulter)) diff --git a/api/v1beta1/machinehealthcheck_types.go b/api/v1beta1/machinehealthcheck_types.go index a8d120351861..5e0dffc71599 100644 --- a/api/v1beta1/machinehealthcheck_types.go +++ b/api/v1beta1/machinehealthcheck_types.go @@ -169,5 +169,5 @@ type MachineHealthCheckList struct { } func init() { - SchemeBuilder.Register(&MachineHealthCheck{}, &MachineHealthCheckList{}) + objectTypes = append(objectTypes, &MachineHealthCheck{}, &MachineHealthCheckList{}) } diff --git a/api/v1beta1/machineset_types.go b/api/v1beta1/machineset_types.go index c888df5c45c2..843b343a4582 100644 --- a/api/v1beta1/machineset_types.go +++ b/api/v1beta1/machineset_types.go @@ -240,5 +240,5 @@ type MachineSetList struct { } func init() { - SchemeBuilder.Register(&MachineSet{}, &MachineSetList{}) + objectTypes = append(objectTypes, &MachineSet{}, &MachineSetList{}) } diff --git a/internal/test/builder/builders.go b/internal/test/builder/builders.go index 49f1b3ea363c..34bcdcb2d0b1 100644 --- a/internal/test/builder/builders.go +++ b/internal/test/builder/builders.go @@ -25,6 +25,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/webhook/admission" @@ -1268,8 +1269,8 @@ func (m *MachineDeploymentBuilder) Build() *clusterv1.MachineDeployment { } } if m.defaulter { - scheme, err := clusterv1.SchemeBuilder.Build() - if err != nil { + scheme := runtime.NewScheme() + if err := clusterv1.SchemeBuilder.AddToScheme(scheme); err != nil { panic(err) } ctx := admission.NewContextWithRequest(context.Background(), admission.Request{