Skip to content

Commit 67b6251

Browse files
author
Sedef
committed
Make envtest to accept list of objects to be read from live client
1 parent e965ade commit 67b6251

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

exp/addons/controllers/clusterresourceset_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import (
3434
)
3535

3636
const (
37-
timeout = time.Second * 5
37+
timeout = time.Second * 15
3838
defaultNamespaceName = "default"
3939
)
4040

exp/addons/controllers/suite_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@ import (
2121
"os"
2222
"testing"
2323

24+
corev1 "k8s.io/api/core/v1"
2425
"sigs.k8s.io/cluster-api/controllers/remote"
26+
"sigs.k8s.io/cluster-api/exp/addons/api/v1alpha4"
2527
"sigs.k8s.io/cluster-api/internal/envtest"
2628
ctrl "sigs.k8s.io/controller-runtime"
29+
"sigs.k8s.io/controller-runtime/pkg/client"
2730
"sigs.k8s.io/controller-runtime/pkg/controller"
2831
"sigs.k8s.io/controller-runtime/pkg/log"
2932
// +kubebuilder:scaffold:imports
@@ -36,7 +39,7 @@ var (
3639

3740
func TestMain(m *testing.M) {
3841
fmt.Println("Creating new test environment")
39-
env = envtest.New()
42+
env = envtest.New([]client.Object{&corev1.ConfigMap{}, &corev1.Secret{}, &v1alpha4.ClusterResourceSetBinding{}}...)
4043

4144
trckr, err := remote.NewClusterCacheTracker(log.NullLogger{}, env.Manager)
4245
if err != nil {

internal/envtest/environment.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ type Environment struct {
103103
//
104104
// This function should be called only once for each package you're running tests within,
105105
// usually the environment is initialized in a suite_test.go file within a `BeforeSuite` ginkgo block.
106-
func New() *Environment {
106+
func New(uncachedObjs ...client.Object) *Environment {
107107
// Get the root of the current file to use in CRD paths.
108108
_, filename, _, _ := goruntime.Caller(0) //nolint
109109
root := path.Join(path.Dir(filename), "..", "..")
@@ -134,11 +134,17 @@ func New() *Environment {
134134
panic(err)
135135
}
136136

137+
objs := []client.Object{}
138+
if len(uncachedObjs) > 0 {
139+
objs = append(objs, uncachedObjs...)
140+
}
141+
137142
options := manager.Options{
138-
Scheme: scheme.Scheme,
139-
MetricsBindAddress: "0",
140-
CertDir: env.WebhookInstallOptions.LocalServingCertDir,
141-
Port: env.WebhookInstallOptions.LocalServingPort,
143+
Scheme: scheme.Scheme,
144+
MetricsBindAddress: "0",
145+
CertDir: env.WebhookInstallOptions.LocalServingCertDir,
146+
Port: env.WebhookInstallOptions.LocalServingPort,
147+
ClientDisableCacheFor: objs,
142148
}
143149

144150
mgr, err := ctrl.NewManager(env.Config, options)

0 commit comments

Comments
 (0)