Skip to content

Commit

Permalink
Merge pull request #9461 from Ankitasw/add-import-restrictions
Browse files Browse the repository at this point in the history
🌱 Enforce import restrictions in all API packages
  • Loading branch information
k8s-ci-robot committed Sep 20, 2023
2 parents 21d3c7b + 615b5e6 commit 4af23e3
Show file tree
Hide file tree
Showing 35 changed files with 169 additions and 37 deletions.
1 change: 1 addition & 0 deletions bootstrap/kubeadm/api/v1alpha4/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ var (

objectTypes = []runtime.Object{}

// localSchemeBuilder is used for type conversions.
localSchemeBuilder = schemeBuilder
)

Expand Down
5 changes: 5 additions & 0 deletions cmd/clusterctl/api/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes: []
forbiddenPrefixes:
- "sigs.k8s.io/controller-runtime"
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,5 @@ type GenericControlPlaneList struct {
}

func init() {
SchemeBuilder.Register(
&GenericControlPlane{}, &GenericControlPlaneList{},
)
objectTypes = append(objectTypes, &GenericControlPlane{}, &GenericControlPlaneList{})
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions controlplane/kubeadm/api/v1alpha4/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
5 changes: 5 additions & 0 deletions exp/addons/api/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes:
- "sigs.k8s.io/controller-runtime/pkg/conversion"
forbiddenPrefixes: []
2 changes: 1 addition & 1 deletion exp/addons/api/v1alpha4/clusterresourceset_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,5 +141,5 @@ type ClusterResourceSetList struct {
}

func init() {
SchemeBuilder.Register(&ClusterResourceSet{}, &ClusterResourceSetList{})
objectTypes = append(objectTypes, &ClusterResourceSet{}, &ClusterResourceSetList{})
}
2 changes: 1 addition & 1 deletion exp/addons/api/v1alpha4/clusterresourcesetbinding_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,5 +138,5 @@ type ClusterResourceSetBindingList struct {
}

func init() {
SchemeBuilder.Register(&ClusterResourceSetBinding{}, &ClusterResourceSetBindingList{})
objectTypes = append(objectTypes, &ClusterResourceSetBinding{}, &ClusterResourceSetBindingList{})
}
19 changes: 14 additions & 5 deletions exp/addons/api/v1alpha4/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
2 changes: 1 addition & 1 deletion exp/addons/api/v1alpha4/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions exp/addons/api/v1beta1/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes: []
forbiddenPrefixes:
- "sigs.k8s.io/controller-runtime"
5 changes: 5 additions & 0 deletions exp/api/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes:
- "sigs.k8s.io/controller-runtime/pkg/conversion"
forbiddenPrefixes: []
18 changes: 14 additions & 4 deletions exp/api/v1alpha4/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,29 @@ 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: "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
}
2 changes: 1 addition & 1 deletion exp/api/v1alpha4/machinepool_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -243,5 +243,5 @@ type MachinePoolList struct {
}

func init() {
SchemeBuilder.Register(&MachinePool{}, &MachinePoolList{})
objectTypes = append(objectTypes, &MachinePool{}, &MachinePoolList{})
}
2 changes: 1 addition & 1 deletion exp/api/v1alpha4/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions exp/api/v1beta1/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes: []
forbiddenPrefixes:
- "sigs.k8s.io/controller-runtime"
5 changes: 5 additions & 0 deletions exp/ipam/api/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes:
- "sigs.k8s.io/controller-runtime/pkg/conversion"
forbiddenPrefixes: []
5 changes: 5 additions & 0 deletions exp/ipam/api/v1alpha1/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes: []
forbiddenPrefixes:
- "sigs.k8s.io/controller-runtime"
5 changes: 5 additions & 0 deletions exp/runtime/api/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes:
- "sigs.k8s.io/controller-runtime/pkg/conversion"
forbiddenPrefixes: []
5 changes: 5 additions & 0 deletions exp/runtime/api/v1alpha1/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes: []
forbiddenPrefixes:
- "sigs.k8s.io/controller-runtime"
10 changes: 10 additions & 0 deletions hack/verify-import-restrictions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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=()
Expand Down
5 changes: 5 additions & 0 deletions test/infrastructure/docker/api/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes:
- "sigs.k8s.io/controller-runtime/pkg/conversion"
forbiddenPrefixes: []
Original file line number Diff line number Diff line change
Expand Up @@ -132,5 +132,5 @@ type DockerClusterList struct {
}

func init() {
SchemeBuilder.Register(&DockerCluster{}, &DockerClusterList{})
objectTypes = append(objectTypes, &DockerCluster{}, &DockerClusterList{})
}
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,5 +131,5 @@ type DockerMachineList struct {
}

func init() {
SchemeBuilder.Register(&DockerMachine{}, &DockerMachineList{})
objectTypes = append(objectTypes, &DockerMachine{}, &DockerMachineList{})
}
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
18 changes: 14 additions & 4 deletions test/infrastructure/docker/api/v1alpha4/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,29 @@ 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: "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
}
5 changes: 5 additions & 0 deletions test/infrastructure/docker/api/v1beta1/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes: []
forbiddenPrefixes:
- "sigs.k8s.io/controller-runtime"
5 changes: 5 additions & 0 deletions test/infrastructure/docker/exp/api/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes:
- "sigs.k8s.io/controller-runtime/pkg/conversion"
forbiddenPrefixes: []
Original file line number Diff line number Diff line change
Expand Up @@ -151,5 +151,5 @@ type DockerMachinePoolList struct {
}

func init() {
SchemeBuilder.Register(&DockerMachinePool{}, &DockerMachinePoolList{})
objectTypes = append(objectTypes, &DockerMachinePool{}, &DockerMachinePoolList{})
}
18 changes: 14 additions & 4 deletions test/infrastructure/docker/exp/api/v1alpha4/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,29 @@ 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: "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
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes: []
forbiddenPrefixes:
- "sigs.k8s.io/controller-runtime"
5 changes: 5 additions & 0 deletions test/infrastructure/inmemory/api/.import-restrictions
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes:
- "sigs.k8s.io/controller-runtime/pkg/conversion"
forbiddenPrefixes: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules:
- selectorRegexp: sigs[.]k8s[.]io/controller-runtime
allowedPrefixes: []
forbiddenPrefixes:
- "sigs.k8s.io/controller-runtime"

0 comments on commit 4af23e3

Please sign in to comment.