From 615b5e6439a47e49dec565a8e17b1dfadbd8f2bd Mon Sep 17 00:00:00 2001 From: swamyan Date: Tue, 19 Sep 2023 18:13:30 +0530 Subject: [PATCH] Enforce import restrictions in all packages --- .../kubeadm/api/v1alpha4/groupversion_info.go | 1 + cmd/clusterctl/api/.import-restrictions | 5 +++++ .../providers/controlplane/generic_types.go | 4 +--- .../controlplane/groupversion_info.go | 16 ++++++++++++---- .../controlplane/zz_generated.deepcopy.go | 2 +- .../kubeadm/api/v1alpha4/groupversion_info.go | 5 +++-- exp/addons/api/.import-restrictions | 5 +++++ .../api/v1alpha4/clusterresourceset_types.go | 2 +- .../clusterresourcesetbinding_types.go | 2 +- exp/addons/api/v1alpha4/groupversion_info.go | 19 ++++++++++++++----- .../api/v1alpha4/zz_generated.deepcopy.go | 2 +- exp/addons/api/v1beta1/.import-restrictions | 5 +++++ exp/api/.import-restrictions | 5 +++++ exp/api/v1alpha4/groupversion_info.go | 18 ++++++++++++++---- exp/api/v1alpha4/machinepool_types.go | 2 +- exp/api/v1alpha4/zz_generated.deepcopy.go | 2 +- exp/api/v1beta1/.import-restrictions | 5 +++++ exp/ipam/api/.import-restrictions | 5 +++++ exp/ipam/api/v1alpha1/.import-restrictions | 5 +++++ exp/runtime/api/.import-restrictions | 5 +++++ exp/runtime/api/v1alpha1/.import-restrictions | 5 +++++ hack/verify-import-restrictions.sh | 10 ++++++++++ .../docker/api/.import-restrictions | 5 +++++ .../api/v1alpha4/dockercluster_types.go | 2 +- .../v1alpha4/dockerclustertemplate_types.go | 2 +- .../api/v1alpha4/dockermachine_types.go | 2 +- .../v1alpha4/dockermachinetemplate_types.go | 2 +- .../docker/api/v1alpha4/groupversion_info.go | 18 ++++++++++++++---- .../docker/api/v1beta1/.import-restrictions | 5 +++++ .../docker/exp/api/.import-restrictions | 5 +++++ .../api/v1alpha4/dockermachinepool_types.go | 2 +- .../exp/api/v1alpha4/groupversion_info.go | 18 ++++++++++++++---- .../exp/api/v1beta1/.import-restrictions | 5 +++++ .../inmemory/api/.import-restrictions | 5 +++++ .../api/v1alpha1/.import-restrictions | 5 +++++ 35 files changed, 169 insertions(+), 37 deletions(-) create mode 100644 cmd/clusterctl/api/.import-restrictions create mode 100644 exp/addons/api/.import-restrictions create mode 100644 exp/addons/api/v1beta1/.import-restrictions create mode 100644 exp/api/.import-restrictions create mode 100644 exp/api/v1beta1/.import-restrictions create mode 100644 exp/ipam/api/.import-restrictions create mode 100644 exp/ipam/api/v1alpha1/.import-restrictions create mode 100644 exp/runtime/api/.import-restrictions create mode 100644 exp/runtime/api/v1alpha1/.import-restrictions create mode 100644 test/infrastructure/docker/api/.import-restrictions create mode 100644 test/infrastructure/docker/api/v1beta1/.import-restrictions create mode 100644 test/infrastructure/docker/exp/api/.import-restrictions create mode 100644 test/infrastructure/docker/exp/api/v1beta1/.import-restrictions create mode 100644 test/infrastructure/inmemory/api/.import-restrictions create mode 100644 test/infrastructure/inmemory/api/v1alpha1/.import-restrictions diff --git a/bootstrap/kubeadm/api/v1alpha4/groupversion_info.go b/bootstrap/kubeadm/api/v1alpha4/groupversion_info.go index 87af293df067..310595ffc425 100644 --- a/bootstrap/kubeadm/api/v1alpha4/groupversion_info.go +++ b/bootstrap/kubeadm/api/v1alpha4/groupversion_info.go @@ -37,6 +37,7 @@ var ( objectTypes = []runtime.Object{} + // localSchemeBuilder is used for type conversions. localSchemeBuilder = schemeBuilder ) diff --git a/cmd/clusterctl/api/.import-restrictions b/cmd/clusterctl/api/.import-restrictions new file mode 100644 index 000000000000..a2e1dfd08133 --- /dev/null +++ b/cmd/clusterctl/api/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: [] + forbiddenPrefixes: + - "sigs.k8s.io/controller-runtime" diff --git a/cmd/clusterctl/internal/test/providers/controlplane/generic_types.go b/cmd/clusterctl/internal/test/providers/controlplane/generic_types.go index 921510065dde..b4a130942c87 100644 --- a/cmd/clusterctl/internal/test/providers/controlplane/generic_types.go +++ b/cmd/clusterctl/internal/test/providers/controlplane/generic_types.go @@ -50,7 +50,5 @@ type GenericControlPlaneList struct { } func init() { - SchemeBuilder.Register( - &GenericControlPlane{}, &GenericControlPlaneList{}, - ) + objectTypes = append(objectTypes, &GenericControlPlane{}, &GenericControlPlaneList{}) } diff --git a/cmd/clusterctl/internal/test/providers/controlplane/groupversion_info.go b/cmd/clusterctl/internal/test/providers/controlplane/groupversion_info.go index 5586f446ad1a..0c2e52bb8893 100644 --- a/cmd/clusterctl/internal/test/providers/controlplane/groupversion_info.go +++ b/cmd/clusterctl/internal/test/providers/controlplane/groupversion_info.go @@ -20,17 +20,25 @@ limitations under the License. package controlplane 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 = 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/internal/test/providers/controlplane/zz_generated.deepcopy.go b/cmd/clusterctl/internal/test/providers/controlplane/zz_generated.deepcopy.go index b9ead9d6806f..aacc2ef45d3d 100644 --- a/cmd/clusterctl/internal/test/providers/controlplane/zz_generated.deepcopy.go +++ b/cmd/clusterctl/internal/test/providers/controlplane/zz_generated.deepcopy.go @@ -21,7 +21,7 @@ limitations under the License. package controlplane 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/v1alpha4/groupversion_info.go b/controlplane/kubeadm/api/v1alpha4/groupversion_info.go index 4e72c4d5ae65..a8e6a7a1c325 100644 --- a/controlplane/kubeadm/api/v1alpha4/groupversion_info.go +++ b/controlplane/kubeadm/api/v1alpha4/groupversion_info.go @@ -35,9 +35,10 @@ var ( // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = schemeBuilder.AddToScheme - localSchemeBuilder = schemeBuilder - objectTypes = []runtime.Object{} + + // localSchemeBuilder is used for type conversions. + localSchemeBuilder = schemeBuilder ) func addKnownTypes(scheme *runtime.Scheme) error { diff --git a/exp/addons/api/.import-restrictions b/exp/addons/api/.import-restrictions new file mode 100644 index 000000000000..f6f10b3ff544 --- /dev/null +++ b/exp/addons/api/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: + - "sigs.k8s.io/controller-runtime/pkg/conversion" + forbiddenPrefixes: [] diff --git a/exp/addons/api/v1alpha4/clusterresourceset_types.go b/exp/addons/api/v1alpha4/clusterresourceset_types.go index 2438e03a50ba..d06d3ffcc9e6 100644 --- a/exp/addons/api/v1alpha4/clusterresourceset_types.go +++ b/exp/addons/api/v1alpha4/clusterresourceset_types.go @@ -141,5 +141,5 @@ type ClusterResourceSetList struct { } func init() { - SchemeBuilder.Register(&ClusterResourceSet{}, &ClusterResourceSetList{}) + objectTypes = append(objectTypes, &ClusterResourceSet{}, &ClusterResourceSetList{}) } diff --git a/exp/addons/api/v1alpha4/clusterresourcesetbinding_types.go b/exp/addons/api/v1alpha4/clusterresourcesetbinding_types.go index acf64a54f2b5..5cd2e123d0ea 100644 --- a/exp/addons/api/v1alpha4/clusterresourcesetbinding_types.go +++ b/exp/addons/api/v1alpha4/clusterresourcesetbinding_types.go @@ -138,5 +138,5 @@ type ClusterResourceSetBindingList struct { } func init() { - SchemeBuilder.Register(&ClusterResourceSetBinding{}, &ClusterResourceSetBindingList{}) + objectTypes = append(objectTypes, &ClusterResourceSetBinding{}, &ClusterResourceSetBindingList{}) } diff --git a/exp/addons/api/v1alpha4/groupversion_info.go b/exp/addons/api/v1alpha4/groupversion_info.go index 41d08f0fd7ba..251172cee4c3 100644 --- a/exp/addons/api/v1alpha4/groupversion_info.go +++ b/exp/addons/api/v1alpha4/groupversion_info.go @@ -20,19 +20,28 @@ limitations under the License. package v1alpha4 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: "addons.cluster.x-k8s.io", Version: "v1alpha4"} - // 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 + AddToScheme = schemeBuilder.AddToScheme - localSchemeBuilder = SchemeBuilder.SchemeBuilder + objectTypes = []runtime.Object{} + + // localSchemeBuilder is used for type conversions. + localSchemeBuilder = schemeBuilder ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/exp/addons/api/v1alpha4/zz_generated.deepcopy.go b/exp/addons/api/v1alpha4/zz_generated.deepcopy.go index a947cd6208c8..5b6977c751e3 100644 --- a/exp/addons/api/v1alpha4/zz_generated.deepcopy.go +++ b/exp/addons/api/v1alpha4/zz_generated.deepcopy.go @@ -21,7 +21,7 @@ limitations under the License. package v1alpha4 import ( - runtime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" apiv1alpha4 "sigs.k8s.io/cluster-api/api/v1alpha4" ) diff --git a/exp/addons/api/v1beta1/.import-restrictions b/exp/addons/api/v1beta1/.import-restrictions new file mode 100644 index 000000000000..a2e1dfd08133 --- /dev/null +++ b/exp/addons/api/v1beta1/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: [] + forbiddenPrefixes: + - "sigs.k8s.io/controller-runtime" diff --git a/exp/api/.import-restrictions b/exp/api/.import-restrictions new file mode 100644 index 000000000000..f6f10b3ff544 --- /dev/null +++ b/exp/api/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: + - "sigs.k8s.io/controller-runtime/pkg/conversion" + forbiddenPrefixes: [] diff --git a/exp/api/v1alpha4/groupversion_info.go b/exp/api/v1alpha4/groupversion_info.go index 77585cdec3d3..37de5e836e53 100644 --- a/exp/api/v1alpha4/groupversion_info.go +++ b/exp/api/v1alpha4/groupversion_info.go @@ -20,8 +20,9 @@ limitations under the License. package v1alpha4 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,10 +30,19 @@ var ( GroupVersion = schema.GroupVersion{Group: "cluster.x-k8s.io", Version: "v1alpha4"} // 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 + AddToScheme = schemeBuilder.AddToScheme - localSchemeBuilder = SchemeBuilder.SchemeBuilder + objectTypes = []runtime.Object{} + + // localSchemeBuilder is used for type conversions. + localSchemeBuilder = schemeBuilder ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/exp/api/v1alpha4/machinepool_types.go b/exp/api/v1alpha4/machinepool_types.go index 09de899a78a1..d96f164a8b77 100644 --- a/exp/api/v1alpha4/machinepool_types.go +++ b/exp/api/v1alpha4/machinepool_types.go @@ -243,5 +243,5 @@ type MachinePoolList struct { } func init() { - SchemeBuilder.Register(&MachinePool{}, &MachinePoolList{}) + objectTypes = append(objectTypes, &MachinePool{}, &MachinePoolList{}) } diff --git a/exp/api/v1alpha4/zz_generated.deepcopy.go b/exp/api/v1alpha4/zz_generated.deepcopy.go index 17daa68ab928..d9931ddbd761 100644 --- a/exp/api/v1alpha4/zz_generated.deepcopy.go +++ b/exp/api/v1alpha4/zz_generated.deepcopy.go @@ -22,7 +22,7 @@ package v1alpha4 import ( "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" apiv1alpha4 "sigs.k8s.io/cluster-api/api/v1alpha4" "sigs.k8s.io/cluster-api/errors" ) diff --git a/exp/api/v1beta1/.import-restrictions b/exp/api/v1beta1/.import-restrictions new file mode 100644 index 000000000000..a2e1dfd08133 --- /dev/null +++ b/exp/api/v1beta1/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: [] + forbiddenPrefixes: + - "sigs.k8s.io/controller-runtime" diff --git a/exp/ipam/api/.import-restrictions b/exp/ipam/api/.import-restrictions new file mode 100644 index 000000000000..f6f10b3ff544 --- /dev/null +++ b/exp/ipam/api/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: + - "sigs.k8s.io/controller-runtime/pkg/conversion" + forbiddenPrefixes: [] diff --git a/exp/ipam/api/v1alpha1/.import-restrictions b/exp/ipam/api/v1alpha1/.import-restrictions new file mode 100644 index 000000000000..a2e1dfd08133 --- /dev/null +++ b/exp/ipam/api/v1alpha1/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: [] + forbiddenPrefixes: + - "sigs.k8s.io/controller-runtime" diff --git a/exp/runtime/api/.import-restrictions b/exp/runtime/api/.import-restrictions new file mode 100644 index 000000000000..f6f10b3ff544 --- /dev/null +++ b/exp/runtime/api/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: + - "sigs.k8s.io/controller-runtime/pkg/conversion" + forbiddenPrefixes: [] diff --git a/exp/runtime/api/v1alpha1/.import-restrictions b/exp/runtime/api/v1alpha1/.import-restrictions new file mode 100644 index 000000000000..a2e1dfd08133 --- /dev/null +++ b/exp/runtime/api/v1alpha1/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: [] + forbiddenPrefixes: + - "sigs.k8s.io/controller-runtime" diff --git a/hack/verify-import-restrictions.sh b/hack/verify-import-restrictions.sh index 818503a72f06..57b4aedb7f4d 100755 --- a/hack/verify-import-restrictions.sh +++ b/hack/verify-import-restrictions.sh @@ -25,6 +25,16 @@ set -o pipefail sub_packages=( "api" + "exp/api" + "bootstrap/kubeadm/api" + "cmd/clusterctl/api" + "controlplane/kubeadm/api" + "exp/addons/api" + "exp/ipam/api" + "exp/runtime/api" + "test/infrastructure/docker/api" + "test/infrastructure/docker/exp/api" + "test/infrastructure/inmemory/api" ) packages=() diff --git a/test/infrastructure/docker/api/.import-restrictions b/test/infrastructure/docker/api/.import-restrictions new file mode 100644 index 000000000000..f6f10b3ff544 --- /dev/null +++ b/test/infrastructure/docker/api/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: + - "sigs.k8s.io/controller-runtime/pkg/conversion" + forbiddenPrefixes: [] diff --git a/test/infrastructure/docker/api/v1alpha4/dockercluster_types.go b/test/infrastructure/docker/api/v1alpha4/dockercluster_types.go index a0353cd732df..a38453c525e8 100644 --- a/test/infrastructure/docker/api/v1alpha4/dockercluster_types.go +++ b/test/infrastructure/docker/api/v1alpha4/dockercluster_types.go @@ -132,5 +132,5 @@ type DockerClusterList struct { } func init() { - SchemeBuilder.Register(&DockerCluster{}, &DockerClusterList{}) + objectTypes = append(objectTypes, &DockerCluster{}, &DockerClusterList{}) } diff --git a/test/infrastructure/docker/api/v1alpha4/dockerclustertemplate_types.go b/test/infrastructure/docker/api/v1alpha4/dockerclustertemplate_types.go index 88b3a56a8552..479ea8161991 100644 --- a/test/infrastructure/docker/api/v1alpha4/dockerclustertemplate_types.go +++ b/test/infrastructure/docker/api/v1alpha4/dockerclustertemplate_types.go @@ -53,7 +53,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/v1alpha4/dockermachine_types.go b/test/infrastructure/docker/api/v1alpha4/dockermachine_types.go index 411a244c53f7..4d973bd7658b 100644 --- a/test/infrastructure/docker/api/v1alpha4/dockermachine_types.go +++ b/test/infrastructure/docker/api/v1alpha4/dockermachine_types.go @@ -131,5 +131,5 @@ type DockerMachineList struct { } func init() { - SchemeBuilder.Register(&DockerMachine{}, &DockerMachineList{}) + objectTypes = append(objectTypes, &DockerMachine{}, &DockerMachineList{}) } diff --git a/test/infrastructure/docker/api/v1alpha4/dockermachinetemplate_types.go b/test/infrastructure/docker/api/v1alpha4/dockermachinetemplate_types.go index a4e234458bbc..369f9829168d 100644 --- a/test/infrastructure/docker/api/v1alpha4/dockermachinetemplate_types.go +++ b/test/infrastructure/docker/api/v1alpha4/dockermachinetemplate_types.go @@ -53,7 +53,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/v1alpha4/groupversion_info.go b/test/infrastructure/docker/api/v1alpha4/groupversion_info.go index 9f321f7f90ca..fc5e4dd0c4cc 100644 --- a/test/infrastructure/docker/api/v1alpha4/groupversion_info.go +++ b/test/infrastructure/docker/api/v1alpha4/groupversion_info.go @@ -20,8 +20,9 @@ limitations under the License. package v1alpha4 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,10 +30,19 @@ var ( GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha4"} // 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 + AddToScheme = schemeBuilder.AddToScheme - localSchemeBuilder = SchemeBuilder.SchemeBuilder + objectTypes = []runtime.Object{} + + // localSchemeBuilder is used for type conversions. + localSchemeBuilder = schemeBuilder ) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(GroupVersion, objectTypes...) + metav1.AddToGroupVersion(scheme, GroupVersion) + return nil +} diff --git a/test/infrastructure/docker/api/v1beta1/.import-restrictions b/test/infrastructure/docker/api/v1beta1/.import-restrictions new file mode 100644 index 000000000000..a2e1dfd08133 --- /dev/null +++ b/test/infrastructure/docker/api/v1beta1/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: [] + forbiddenPrefixes: + - "sigs.k8s.io/controller-runtime" diff --git a/test/infrastructure/docker/exp/api/.import-restrictions b/test/infrastructure/docker/exp/api/.import-restrictions new file mode 100644 index 000000000000..f6f10b3ff544 --- /dev/null +++ b/test/infrastructure/docker/exp/api/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: + - "sigs.k8s.io/controller-runtime/pkg/conversion" + forbiddenPrefixes: [] diff --git a/test/infrastructure/docker/exp/api/v1alpha4/dockermachinepool_types.go b/test/infrastructure/docker/exp/api/v1alpha4/dockermachinepool_types.go index ff0590c297a1..28f49fb77c6c 100644 --- a/test/infrastructure/docker/exp/api/v1alpha4/dockermachinepool_types.go +++ b/test/infrastructure/docker/exp/api/v1alpha4/dockermachinepool_types.go @@ -151,5 +151,5 @@ type DockerMachinePoolList struct { } func init() { - SchemeBuilder.Register(&DockerMachinePool{}, &DockerMachinePoolList{}) + objectTypes = append(objectTypes, &DockerMachinePool{}, &DockerMachinePoolList{}) } diff --git a/test/infrastructure/docker/exp/api/v1alpha4/groupversion_info.go b/test/infrastructure/docker/exp/api/v1alpha4/groupversion_info.go index 36080a721a51..068abb9aae54 100644 --- a/test/infrastructure/docker/exp/api/v1alpha4/groupversion_info.go +++ b/test/infrastructure/docker/exp/api/v1alpha4/groupversion_info.go @@ -20,8 +20,9 @@ limitations under the License. package v1alpha4 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,10 +30,19 @@ var ( GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1alpha4"} // 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 + AddToScheme = schemeBuilder.AddToScheme - localSchemeBuilder = SchemeBuilder.SchemeBuilder + objectTypes = []runtime.Object{} + + // localSchemeBuilder is used for type conversions. + localSchemeBuilder = schemeBuilder ) + +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/.import-restrictions b/test/infrastructure/docker/exp/api/v1beta1/.import-restrictions new file mode 100644 index 000000000000..a2e1dfd08133 --- /dev/null +++ b/test/infrastructure/docker/exp/api/v1beta1/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: [] + forbiddenPrefixes: + - "sigs.k8s.io/controller-runtime" diff --git a/test/infrastructure/inmemory/api/.import-restrictions b/test/infrastructure/inmemory/api/.import-restrictions new file mode 100644 index 000000000000..f6f10b3ff544 --- /dev/null +++ b/test/infrastructure/inmemory/api/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: + - "sigs.k8s.io/controller-runtime/pkg/conversion" + forbiddenPrefixes: [] diff --git a/test/infrastructure/inmemory/api/v1alpha1/.import-restrictions b/test/infrastructure/inmemory/api/v1alpha1/.import-restrictions new file mode 100644 index 000000000000..a2e1dfd08133 --- /dev/null +++ b/test/infrastructure/inmemory/api/v1alpha1/.import-restrictions @@ -0,0 +1,5 @@ +rules: + - selectorRegexp: sigs[.]k8s[.]io/controller-runtime + allowedPrefixes: [] + forbiddenPrefixes: + - "sigs.k8s.io/controller-runtime"