@@ -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
0 commit comments