Skip to content

Commit bca5e1b

Browse files
committed
envtest: append flags to defaultKubeAPIServerFlags
This change adds a constructor NewEnvironment() for creating a new k8s test environment with defaultKubeAPIServerFlags as the default API server flags and adds a method AppendKubeAPIServerFlags() to append more flags to the default set of flags. It also updates all the tests to use NewEnvironment().
1 parent 5bccddb commit bca5e1b

11 files changed

+26
-12
lines changed

pkg/builder/builder_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ var cfg *rest.Config
3737
var _ = BeforeSuite(func(done Done) {
3838
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
3939

40-
testenv = &envtest.Environment{}
40+
testenv = envtest.NewEnvironment()
4141

4242
var err error
4343
cfg, err = testenv.Start()

pkg/cache/cache_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
3939
var _ = BeforeSuite(func(done Done) {
4040
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
4141

42-
testenv = &envtest.Environment{}
42+
testenv = envtest.NewEnvironment()
4343

4444
var err error
4545
cfg, err = testenv.Start()

pkg/client/client_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ var clientset *kubernetes.Clientset
4040
var _ = BeforeSuite(func(done Done) {
4141
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
4242

43-
testenv = &envtest.Environment{}
43+
testenv = envtest.NewEnvironment()
4444

4545
var err error
4646
cfg, err = testenv.Start()

pkg/controller/controller_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
3939
var _ = BeforeSuite(func(done Done) {
4040
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
4141

42-
testenv = &envtest.Environment{}
42+
testenv = envtest.NewEnvironment()
4343

4444
var err error
4545
cfg, err = testenv.Start()

pkg/controller/controllerutil/controllerutil_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var c client.Client
3939
var _ = BeforeSuite(func() {
4040
var err error
4141

42-
t = &envtest.Environment{}
42+
t = envtest.NewEnvironment()
4343

4444
cfg, err = t.Start()
4545
Expect(err).NotTo(HaveOccurred())

pkg/envtest/envtest_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ var env *Environment
3333

3434
var _ = BeforeSuite(func(done Done) {
3535
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
36-
env = &Environment{}
36+
env = NewEnvironment()
3737
_, err := env.Start()
3838
Expect(err).NotTo(HaveOccurred())
3939

pkg/envtest/server.go

+16-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ func defaultAssetPath(binary string) string {
4747
}
4848

4949
// APIServerDefaultArgs are flags necessary to bring up apiserver.
50-
// TODO: create test framework interface to append flag to default flags.
5150
var defaultKubeAPIServerFlags = []string{
5251
"--etcd-servers={{ if .EtcdURL }}{{ .EtcdURL.String }}{{ end }}",
5352
"--cert-dir={{ .CertDir }}",
@@ -76,6 +75,21 @@ type Environment struct {
7675
// existing kubeconfig, instead of trying to stand up a new control plane.
7776
// This is useful in cases that need aggregated API servers and the like.
7877
UseExistingCluster bool
78+
79+
// KubeAPIServerFlags is the set of flags passed while starting the api server.
80+
KubeAPIServerFlags []string
81+
}
82+
83+
// NewEnvironment creates a new Kubernetes test environment with default configs.
84+
func NewEnvironment() *Environment {
85+
return &Environment{
86+
KubeAPIServerFlags: defaultKubeAPIServerFlags,
87+
}
88+
}
89+
90+
// AppendKubeAPIServerFlags appends additional flags to defaultKubeAPIServerFlags.
91+
func (te *Environment) AppendKubeAPIServerFlags(flags []string) {
92+
te.KubeAPIServerFlags = append(te.KubeAPIServerFlags, flags...)
7993
}
8094

8195
// Stop stops a running server
@@ -101,7 +115,7 @@ func (te *Environment) Start() (*rest.Config, error) {
101115
}
102116
} else {
103117
te.ControlPlane = integration.ControlPlane{}
104-
te.ControlPlane.APIServer = &integration.APIServer{Args: defaultKubeAPIServerFlags}
118+
te.ControlPlane.APIServer = &integration.APIServer{Args: te.KubeAPIServerFlags}
105119
if os.Getenv(envKubeAPIServerBin) == "" {
106120
te.ControlPlane.APIServer.Path = defaultAssetPath("kube-apiserver")
107121
}

pkg/internal/controller/controller_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
3939
var _ = BeforeSuite(func(done Done) {
4040
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
4141

42-
testenv = &envtest.Environment{}
42+
testenv = envtest.NewEnvironment()
4343

4444
var err error
4545
cfg, err = testenv.Start()

pkg/internal/recorder/recorder_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
3939
var _ = BeforeSuite(func(done Done) {
4040
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
4141

42-
testenv = &envtest.Environment{}
42+
testenv = envtest.NewEnvironment()
4343

4444
var err error
4545
cfg, err = testenv.Start()

pkg/manager/manager_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
3939
var _ = BeforeSuite(func(done Done) {
4040
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
4141

42-
testenv = &envtest.Environment{}
42+
testenv = envtest.NewEnvironment()
4343

4444
var err error
4545
cfg, err = testenv.Start()

pkg/source/source_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ var _ = BeforeSuite(func(done Done) {
4343
stop = make(chan struct{})
4444
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
4545

46-
testenv = &envtest.Environment{}
46+
testenv = envtest.NewEnvironment()
4747

4848
var err error
4949
config, err = testenv.Start()

0 commit comments

Comments
 (0)