diff --git a/bootstrap/kubeadm/internal/controllers/suite_test.go b/bootstrap/kubeadm/internal/controllers/suite_test.go index dce30d9334f7..1d9ae9c5165b 100644 --- a/bootstrap/kubeadm/internal/controllers/suite_test.go +++ b/bootstrap/kubeadm/internal/controllers/suite_test.go @@ -23,9 +23,13 @@ import ( "testing" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/internal/test/envtest" ) @@ -48,9 +52,20 @@ func TestMain(m *testing.M) { panic(fmt.Sprintf("unable to create secretCachingClient: %v", err)) } } + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) os.Exit(envtest.Run(ctx, envtest.RunInput{ M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, ManagerUncachedObjs: []client.Object{ &corev1.ConfigMap{}, &corev1.Secret{}, diff --git a/controllers/clustercache/suite_test.go b/controllers/clustercache/suite_test.go index a9d8681627fe..d5234dd7b09a 100644 --- a/controllers/clustercache/suite_test.go +++ b/controllers/clustercache/suite_test.go @@ -20,7 +20,13 @@ import ( "os" "testing" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" + "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/cluster-api/internal/test/envtest" ) @@ -31,8 +37,19 @@ var ( ) func TestMain(m *testing.M) { + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, })) } diff --git a/controllers/remote/suite_test.go b/controllers/remote/suite_test.go index 8b6f016fa630..cdf8a644ab3a 100644 --- a/controllers/remote/suite_test.go +++ b/controllers/remote/suite_test.go @@ -21,7 +21,13 @@ import ( "testing" "time" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" + "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/cluster-api/internal/test/envtest" ) @@ -36,8 +42,19 @@ var ( ) func TestMain(m *testing.M) { + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, })) } diff --git a/controlplane/kubeadm/internal/suite_test.go b/controlplane/kubeadm/internal/suite_test.go index 65e3c9a61ff1..bf42fe5b3d99 100644 --- a/controlplane/kubeadm/internal/suite_test.go +++ b/controlplane/kubeadm/internal/suite_test.go @@ -23,9 +23,13 @@ import ( "testing" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/internal/test/envtest" ) @@ -48,8 +52,20 @@ func TestMain(m *testing.M) { panic(fmt.Sprintf("unable to create secretCachingClient: %v", err)) } } + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) + os.Exit(envtest.Run(ctx, envtest.RunInput{ M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, ManagerUncachedObjs: []client.Object{ &corev1.ConfigMap{}, &corev1.Secret{}, diff --git a/exp/internal/controllers/suite_test.go b/exp/internal/controllers/suite_test.go index 3aaff11385ca..7d7836f5c95e 100644 --- a/exp/internal/controllers/suite_test.go +++ b/exp/internal/controllers/suite_test.go @@ -23,10 +23,14 @@ import ( "testing" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/api/v1beta1/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" @@ -76,8 +80,20 @@ func TestMain(m *testing.M) { } } + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) + os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, SetupIndexes: setupIndexes, SetupReconcilers: setupReconcilers, diff --git a/internal/controllers/cluster/suite_test.go b/internal/controllers/cluster/suite_test.go index 122a405cad73..9f2f52b92ca5 100644 --- a/internal/controllers/cluster/suite_test.go +++ b/internal/controllers/cluster/suite_test.go @@ -26,9 +26,12 @@ import ( . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/selection" clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -110,8 +113,20 @@ func TestMain(m *testing.M) { SetDefaultEventuallyPollingInterval(100 * time.Millisecond) SetDefaultEventuallyTimeout(timeout) + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) + os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, SetupIndexes: setupIndexes, SetupReconcilers: setupReconcilers, diff --git a/internal/controllers/clusterclass/suite_test.go b/internal/controllers/clusterclass/suite_test.go index d945d10bdcac..384e07ad87a7 100644 --- a/internal/controllers/clusterclass/suite_test.go +++ b/internal/controllers/clusterclass/suite_test.go @@ -27,11 +27,14 @@ import ( corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/selection" clientgoscheme "k8s.io/client-go/kubernetes/scheme" "k8s.io/component-base/featuregate" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -72,8 +75,21 @@ func TestMain(m *testing.M) { } SetDefaultEventuallyPollingInterval(100 * time.Millisecond) SetDefaultEventuallyTimeout(30 * time.Second) + + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) + os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, ManagerUncachedObjs: []client.Object{}, SetupEnv: func(e *envtest.Environment) { env = e }, SetupIndexes: setupIndexes, diff --git a/internal/controllers/machine/suite_test.go b/internal/controllers/machine/suite_test.go index b6e00091e0d6..7344a49377a0 100644 --- a/internal/controllers/machine/suite_test.go +++ b/internal/controllers/machine/suite_test.go @@ -26,9 +26,12 @@ import ( . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/selection" clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -102,8 +105,20 @@ func TestMain(m *testing.M) { SetDefaultEventuallyPollingInterval(100 * time.Millisecond) SetDefaultEventuallyTimeout(timeout) + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) + os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, SetupIndexes: setupIndexes, SetupReconcilers: setupReconcilers, diff --git a/internal/controllers/machinedeployment/suite_test.go b/internal/controllers/machinedeployment/suite_test.go index ff041b191bbd..d46d0b0d07ec 100644 --- a/internal/controllers/machinedeployment/suite_test.go +++ b/internal/controllers/machinedeployment/suite_test.go @@ -28,12 +28,15 @@ import ( apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/selection" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/uuid" clientgoscheme "k8s.io/client-go/kubernetes/scheme" "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -116,8 +119,20 @@ func TestMain(m *testing.M) { SetDefaultEventuallyPollingInterval(100 * time.Millisecond) SetDefaultEventuallyTimeout(timeout) + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) + os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, SetupIndexes: setupIndexes, SetupReconcilers: setupReconcilers, diff --git a/internal/controllers/machinehealthcheck/suite_test.go b/internal/controllers/machinehealthcheck/suite_test.go index d68122bc76eb..639e48af2e19 100644 --- a/internal/controllers/machinehealthcheck/suite_test.go +++ b/internal/controllers/machinehealthcheck/suite_test.go @@ -25,10 +25,14 @@ import ( . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/selection" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/api/v1beta1/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" @@ -115,8 +119,20 @@ func TestMain(m *testing.M) { SetDefaultEventuallyPollingInterval(100 * time.Millisecond) SetDefaultEventuallyTimeout(timeout) + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) + os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, SetupIndexes: setupIndexes, SetupReconcilers: setupReconcilers, diff --git a/internal/controllers/machineset/suite_test.go b/internal/controllers/machineset/suite_test.go index ec9aa076bfb2..0eaef806b1f8 100644 --- a/internal/controllers/machineset/suite_test.go +++ b/internal/controllers/machineset/suite_test.go @@ -28,11 +28,14 @@ import ( apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/selection" "k8s.io/apimachinery/pkg/util/uuid" clientgoscheme "k8s.io/client-go/kubernetes/scheme" "k8s.io/utils/ptr" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -109,8 +112,20 @@ func TestMain(m *testing.M) { SetDefaultEventuallyPollingInterval(100 * time.Millisecond) SetDefaultEventuallyTimeout(timeout) + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) + os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, SetupIndexes: setupIndexes, SetupReconcilers: setupReconcilers, diff --git a/internal/controllers/topology/cluster/structuredmerge/suite_test.go b/internal/controllers/topology/cluster/structuredmerge/suite_test.go index 5991ecd5bf9d..0d5f3c33d772 100644 --- a/internal/controllers/topology/cluster/structuredmerge/suite_test.go +++ b/internal/controllers/topology/cluster/structuredmerge/suite_test.go @@ -22,10 +22,15 @@ import ( "time" . "github.com/onsi/gomega" + corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/selection" clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/cache" + "sigs.k8s.io/controller-runtime/pkg/client" clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/internal/test/envtest" @@ -46,8 +51,19 @@ func init() { func TestMain(m *testing.M) { SetDefaultEventuallyPollingInterval(100 * time.Millisecond) SetDefaultEventuallyTimeout(30 * time.Second) + req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil) + clusterSecretCacheSelector := labels.NewSelector().Add(*req) os.Exit(envtest.Run(ctx, envtest.RunInput{ - M: m, + M: m, + ManagerCacheOptions: cache.Options{ + ByObject: map[client.Object]cache.ByObject{ + // Only cache Secrets with the cluster name label. + // This is similar to the real world. + &corev1.Secret{}: { + Label: clusterSecretCacheSelector, + }, + }, + }, SetupEnv: func(e *envtest.Environment) { env = e }, // We are testing the patch helper against a real API Server, no need of additional indexes/reconcilers. MinK8sVersion: "v1.22.0", // ClusterClass uses server side apply that went GA in 1.22; we do not support previous version because of bug/inconsistent behaviours in the older release.