Skip to content

Commit e14cfb4

Browse files
authored
🌱 Sync Cache configuration in tests (#11768)
* Sync Cache configuration in tests * Address review comments
1 parent f6aec64 commit e14cfb4

File tree

14 files changed

+278
-15
lines changed

14 files changed

+278
-15
lines changed

bootstrap/kubeadm/internal/controllers/suite_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,13 @@ import (
2323
"testing"
2424

2525
corev1 "k8s.io/api/core/v1"
26+
"k8s.io/apimachinery/pkg/labels"
27+
"k8s.io/apimachinery/pkg/selection"
2628
ctrl "sigs.k8s.io/controller-runtime"
29+
"sigs.k8s.io/controller-runtime/pkg/cache"
2730
"sigs.k8s.io/controller-runtime/pkg/client"
2831

32+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2933
"sigs.k8s.io/cluster-api/internal/test/envtest"
3034
)
3135

@@ -48,9 +52,20 @@ func TestMain(m *testing.M) {
4852
panic(fmt.Sprintf("unable to create secretCachingClient: %v", err))
4953
}
5054
}
55+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
56+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
5157

5258
os.Exit(envtest.Run(ctx, envtest.RunInput{
5359
M: m,
60+
ManagerCacheOptions: cache.Options{
61+
ByObject: map[client.Object]cache.ByObject{
62+
// Only cache Secrets with the cluster name label.
63+
// This is similar to the real world.
64+
&corev1.Secret{}: {
65+
Label: clusterSecretCacheSelector,
66+
},
67+
},
68+
},
5469
ManagerUncachedObjs: []client.Object{
5570
&corev1.ConfigMap{},
5671
&corev1.Secret{},

controllers/clustercache/suite_test.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,14 @@ import (
2020
"os"
2121
"testing"
2222

23+
corev1 "k8s.io/api/core/v1"
24+
"k8s.io/apimachinery/pkg/labels"
25+
"k8s.io/apimachinery/pkg/selection"
2326
ctrl "sigs.k8s.io/controller-runtime"
27+
"sigs.k8s.io/controller-runtime/pkg/cache"
28+
"sigs.k8s.io/controller-runtime/pkg/client"
2429

30+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2531
"sigs.k8s.io/cluster-api/internal/test/envtest"
2632
)
2733

@@ -31,8 +37,19 @@ var (
3137
)
3238

3339
func TestMain(m *testing.M) {
40+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
41+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
3442
os.Exit(envtest.Run(ctx, envtest.RunInput{
35-
M: m,
43+
M: m,
44+
ManagerCacheOptions: cache.Options{
45+
ByObject: map[client.Object]cache.ByObject{
46+
// Only cache Secrets with the cluster name label.
47+
// This is similar to the real world.
48+
&corev1.Secret{}: {
49+
Label: clusterSecretCacheSelector,
50+
},
51+
},
52+
},
3653
SetupEnv: func(e *envtest.Environment) { env = e },
3754
}))
3855
}

controllers/remote/suite_test.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,14 @@ import (
2121
"testing"
2222
"time"
2323

24+
corev1 "k8s.io/api/core/v1"
25+
"k8s.io/apimachinery/pkg/labels"
26+
"k8s.io/apimachinery/pkg/selection"
2427
ctrl "sigs.k8s.io/controller-runtime"
28+
"sigs.k8s.io/controller-runtime/pkg/cache"
29+
"sigs.k8s.io/controller-runtime/pkg/client"
2530

31+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2632
"sigs.k8s.io/cluster-api/internal/test/envtest"
2733
)
2834

@@ -36,8 +42,23 @@ var (
3642
)
3743

3844
func TestMain(m *testing.M) {
45+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
46+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
3947
os.Exit(envtest.Run(ctx, envtest.RunInput{
40-
M: m,
48+
M: m,
49+
ManagerCacheOptions: cache.Options{
50+
ByObject: map[client.Object]cache.ByObject{
51+
// Only cache Secrets with the cluster name label.
52+
// This is similar to the real world.
53+
&corev1.Secret{}: {
54+
Label: clusterSecretCacheSelector,
55+
},
56+
},
57+
},
58+
ManagerUncachedObjs: []client.Object{
59+
&corev1.ConfigMap{},
60+
&corev1.Secret{},
61+
},
4162
SetupEnv: func(e *envtest.Environment) { env = e },
4263
}))
4364
}

controlplane/kubeadm/internal/suite_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,13 @@ import (
2323
"testing"
2424

2525
corev1 "k8s.io/api/core/v1"
26+
"k8s.io/apimachinery/pkg/labels"
27+
"k8s.io/apimachinery/pkg/selection"
2628
ctrl "sigs.k8s.io/controller-runtime"
29+
"sigs.k8s.io/controller-runtime/pkg/cache"
2730
"sigs.k8s.io/controller-runtime/pkg/client"
2831

32+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2933
"sigs.k8s.io/cluster-api/internal/test/envtest"
3034
)
3135

@@ -48,8 +52,20 @@ func TestMain(m *testing.M) {
4852
panic(fmt.Sprintf("unable to create secretCachingClient: %v", err))
4953
}
5054
}
55+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
56+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
57+
5158
os.Exit(envtest.Run(ctx, envtest.RunInput{
5259
M: m,
60+
ManagerCacheOptions: cache.Options{
61+
ByObject: map[client.Object]cache.ByObject{
62+
// Only cache Secrets with the cluster name label.
63+
// This is similar to the real world.
64+
&corev1.Secret{}: {
65+
Label: clusterSecretCacheSelector,
66+
},
67+
},
68+
},
5369
ManagerUncachedObjs: []client.Object{
5470
&corev1.ConfigMap{},
5571
&corev1.Secret{},

exp/internal/controllers/suite_test.go

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,14 @@ import (
2323
"testing"
2424

2525
corev1 "k8s.io/api/core/v1"
26+
"k8s.io/apimachinery/pkg/labels"
27+
"k8s.io/apimachinery/pkg/selection"
2628
ctrl "sigs.k8s.io/controller-runtime"
29+
"sigs.k8s.io/controller-runtime/pkg/cache"
2730
"sigs.k8s.io/controller-runtime/pkg/client"
2831
"sigs.k8s.io/controller-runtime/pkg/controller"
2932

33+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
3034
"sigs.k8s.io/cluster-api/api/v1beta1/index"
3135
"sigs.k8s.io/cluster-api/controllers/clustercache"
3236
"sigs.k8s.io/cluster-api/controllers/remote"
@@ -80,8 +84,24 @@ func TestMain(m *testing.M) {
8084
}
8185
}
8286

87+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
88+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
89+
8390
os.Exit(envtest.Run(ctx, envtest.RunInput{
84-
M: m,
91+
M: m,
92+
ManagerCacheOptions: cache.Options{
93+
ByObject: map[client.Object]cache.ByObject{
94+
// Only cache Secrets with the cluster name label.
95+
// This is similar to the real world.
96+
&corev1.Secret{}: {
97+
Label: clusterSecretCacheSelector,
98+
},
99+
},
100+
},
101+
ManagerUncachedObjs: []client.Object{
102+
&corev1.ConfigMap{},
103+
&corev1.Secret{},
104+
},
85105
SetupEnv: func(e *envtest.Environment) { env = e },
86106
SetupIndexes: setupIndexes,
87107
SetupReconcilers: setupReconcilers,

exp/runtime/internal/controllers/suite_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,14 @@ import (
2222
"os"
2323
"testing"
2424

25+
corev1 "k8s.io/api/core/v1"
26+
"k8s.io/apimachinery/pkg/labels"
27+
"k8s.io/apimachinery/pkg/selection"
2528
ctrl "sigs.k8s.io/controller-runtime"
29+
"sigs.k8s.io/controller-runtime/pkg/cache"
30+
"sigs.k8s.io/controller-runtime/pkg/client"
2631

32+
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
2733
"sigs.k8s.io/cluster-api/api/v1beta1/index"
2834
"sigs.k8s.io/cluster-api/internal/test/envtest"
2935
)
@@ -39,8 +45,23 @@ func TestMain(m *testing.M) {
3945
panic(fmt.Sprintf("unable to setup index: %v", err))
4046
}
4147
}
48+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
49+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
4250

4351
os.Exit(envtest.Run(ctx, envtest.RunInput{
52+
ManagerCacheOptions: cache.Options{
53+
ByObject: map[client.Object]cache.ByObject{
54+
// Only cache Secrets with the cluster name label.
55+
// This is similar to the real world.
56+
&corev1.Secret{}: {
57+
Label: clusterSecretCacheSelector,
58+
},
59+
},
60+
},
61+
ManagerUncachedObjs: []client.Object{
62+
&corev1.ConfigMap{},
63+
&corev1.Secret{},
64+
},
4465
M: m,
4566
SetupEnv: func(e *envtest.Environment) { env = e },
4667
SetupIndexes: setupIndexes,

internal/controllers/cluster/suite_test.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ import (
2626
. "github.com/onsi/gomega"
2727
corev1 "k8s.io/api/core/v1"
2828
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
29+
"k8s.io/apimachinery/pkg/labels"
2930
"k8s.io/apimachinery/pkg/runtime"
31+
"k8s.io/apimachinery/pkg/selection"
3032
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3133
ctrl "sigs.k8s.io/controller-runtime"
34+
"sigs.k8s.io/controller-runtime/pkg/cache"
3235
"sigs.k8s.io/controller-runtime/pkg/client"
3336
"sigs.k8s.io/controller-runtime/pkg/controller"
3437

@@ -114,8 +117,24 @@ func TestMain(m *testing.M) {
114117
SetDefaultEventuallyPollingInterval(100 * time.Millisecond)
115118
SetDefaultEventuallyTimeout(timeout)
116119

120+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
121+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
122+
117123
os.Exit(envtest.Run(ctx, envtest.RunInput{
118-
M: m,
124+
M: m,
125+
ManagerCacheOptions: cache.Options{
126+
ByObject: map[client.Object]cache.ByObject{
127+
// Only cache Secrets with the cluster name label.
128+
// This is similar to the real world.
129+
&corev1.Secret{}: {
130+
Label: clusterSecretCacheSelector,
131+
},
132+
},
133+
},
134+
ManagerUncachedObjs: []client.Object{
135+
&corev1.ConfigMap{},
136+
&corev1.Secret{},
137+
},
119138
SetupEnv: func(e *envtest.Environment) { env = e },
120139
SetupIndexes: setupIndexes,
121140
SetupReconcilers: setupReconcilers,

internal/controllers/clusterclass/suite_test.go

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,14 @@ import (
2727
corev1 "k8s.io/api/core/v1"
2828
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2929
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30+
"k8s.io/apimachinery/pkg/labels"
3031
"k8s.io/apimachinery/pkg/runtime"
3132
"k8s.io/apimachinery/pkg/runtime/schema"
33+
"k8s.io/apimachinery/pkg/selection"
3234
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3335
"k8s.io/component-base/featuregate"
3436
ctrl "sigs.k8s.io/controller-runtime"
37+
"sigs.k8s.io/controller-runtime/pkg/cache"
3538
"sigs.k8s.io/controller-runtime/pkg/client"
3639
"sigs.k8s.io/controller-runtime/pkg/controller"
3740

@@ -72,12 +75,28 @@ func TestMain(m *testing.M) {
7275
}
7376
SetDefaultEventuallyPollingInterval(100 * time.Millisecond)
7477
SetDefaultEventuallyTimeout(30 * time.Second)
78+
79+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
80+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
81+
7582
os.Exit(envtest.Run(ctx, envtest.RunInput{
76-
M: m,
77-
ManagerUncachedObjs: []client.Object{},
78-
SetupEnv: func(e *envtest.Environment) { env = e },
79-
SetupIndexes: setupIndexes,
80-
SetupReconcilers: setupReconcilers,
83+
M: m,
84+
ManagerCacheOptions: cache.Options{
85+
ByObject: map[client.Object]cache.ByObject{
86+
// Only cache Secrets with the cluster name label.
87+
// This is similar to the real world.
88+
&corev1.Secret{}: {
89+
Label: clusterSecretCacheSelector,
90+
},
91+
},
92+
},
93+
ManagerUncachedObjs: []client.Object{
94+
&corev1.ConfigMap{},
95+
&corev1.Secret{},
96+
},
97+
SetupEnv: func(e *envtest.Environment) { env = e },
98+
SetupIndexes: setupIndexes,
99+
SetupReconcilers: setupReconcilers,
81100
}))
82101
}
83102

internal/controllers/machine/suite_test.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ import (
2626
. "github.com/onsi/gomega"
2727
corev1 "k8s.io/api/core/v1"
2828
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
29+
"k8s.io/apimachinery/pkg/labels"
2930
"k8s.io/apimachinery/pkg/runtime"
31+
"k8s.io/apimachinery/pkg/selection"
3032
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3133
ctrl "sigs.k8s.io/controller-runtime"
34+
"sigs.k8s.io/controller-runtime/pkg/cache"
3235
"sigs.k8s.io/controller-runtime/pkg/client"
3336
"sigs.k8s.io/controller-runtime/pkg/controller"
3437

@@ -107,8 +110,24 @@ func TestMain(m *testing.M) {
107110
SetDefaultEventuallyPollingInterval(100 * time.Millisecond)
108111
SetDefaultEventuallyTimeout(timeout)
109112

113+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
114+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
115+
110116
os.Exit(envtest.Run(ctx, envtest.RunInput{
111-
M: m,
117+
M: m,
118+
ManagerCacheOptions: cache.Options{
119+
ByObject: map[client.Object]cache.ByObject{
120+
// Only cache Secrets with the cluster name label.
121+
// This is similar to the real world.
122+
&corev1.Secret{}: {
123+
Label: clusterSecretCacheSelector,
124+
},
125+
},
126+
},
127+
ManagerUncachedObjs: []client.Object{
128+
&corev1.ConfigMap{},
129+
&corev1.Secret{},
130+
},
112131
SetupEnv: func(e *envtest.Environment) { env = e },
113132
SetupIndexes: setupIndexes,
114133
SetupReconcilers: setupReconcilers,

internal/controllers/machinedeployment/suite_test.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,15 @@ import (
2828
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2929
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3030
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
31+
"k8s.io/apimachinery/pkg/labels"
3132
"k8s.io/apimachinery/pkg/runtime"
33+
"k8s.io/apimachinery/pkg/selection"
3234
"k8s.io/apimachinery/pkg/util/intstr"
3335
"k8s.io/apimachinery/pkg/util/uuid"
3436
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3537
"k8s.io/utils/ptr"
3638
ctrl "sigs.k8s.io/controller-runtime"
39+
"sigs.k8s.io/controller-runtime/pkg/cache"
3740
"sigs.k8s.io/controller-runtime/pkg/client"
3841
"sigs.k8s.io/controller-runtime/pkg/controller"
3942

@@ -120,8 +123,24 @@ func TestMain(m *testing.M) {
120123
SetDefaultEventuallyPollingInterval(100 * time.Millisecond)
121124
SetDefaultEventuallyTimeout(timeout)
122125

126+
req, _ := labels.NewRequirement(clusterv1.ClusterNameLabel, selection.Exists, nil)
127+
clusterSecretCacheSelector := labels.NewSelector().Add(*req)
128+
123129
os.Exit(envtest.Run(ctx, envtest.RunInput{
124-
M: m,
130+
M: m,
131+
ManagerCacheOptions: cache.Options{
132+
ByObject: map[client.Object]cache.ByObject{
133+
// Only cache Secrets with the cluster name label.
134+
// This is similar to the real world.
135+
&corev1.Secret{}: {
136+
Label: clusterSecretCacheSelector,
137+
},
138+
},
139+
},
140+
ManagerUncachedObjs: []client.Object{
141+
&corev1.ConfigMap{},
142+
&corev1.Secret{},
143+
},
125144
SetupEnv: func(e *envtest.Environment) { env = e },
126145
SetupIndexes: setupIndexes,
127146
SetupReconcilers: setupReconcilers,

0 commit comments

Comments
 (0)