Skip to content

Commit

Permalink
envtest: append flags to defaultKubeAPIServerFlags
Browse files Browse the repository at this point in the history
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().
  • Loading branch information
darkowlzz committed Sep 30, 2018
1 parent 5bccddb commit bca5e1b
Show file tree
Hide file tree
Showing 11 changed files with 26 additions and 12 deletions.
2 changes: 1 addition & 1 deletion pkg/builder/builder_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ var cfg *rest.Config
var _ = BeforeSuite(func(done Done) {
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))

testenv = &envtest.Environment{}
testenv = envtest.NewEnvironment()

var err error
cfg, err = testenv.Start()
Expand Down
2 changes: 1 addition & 1 deletion pkg/cache/cache_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
var _ = BeforeSuite(func(done Done) {
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))

testenv = &envtest.Environment{}
testenv = envtest.NewEnvironment()

var err error
cfg, err = testenv.Start()
Expand Down
2 changes: 1 addition & 1 deletion pkg/client/client_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ var clientset *kubernetes.Clientset
var _ = BeforeSuite(func(done Done) {
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))

testenv = &envtest.Environment{}
testenv = envtest.NewEnvironment()

var err error
cfg, err = testenv.Start()
Expand Down
2 changes: 1 addition & 1 deletion pkg/controller/controller_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
var _ = BeforeSuite(func(done Done) {
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))

testenv = &envtest.Environment{}
testenv = envtest.NewEnvironment()

var err error
cfg, err = testenv.Start()
Expand Down
2 changes: 1 addition & 1 deletion pkg/controller/controllerutil/controllerutil_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var c client.Client
var _ = BeforeSuite(func() {
var err error

t = &envtest.Environment{}
t = envtest.NewEnvironment()

cfg, err = t.Start()
Expect(err).NotTo(HaveOccurred())
Expand Down
2 changes: 1 addition & 1 deletion pkg/envtest/envtest_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ var env *Environment

var _ = BeforeSuite(func(done Done) {
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))
env = &Environment{}
env = NewEnvironment()
_, err := env.Start()
Expect(err).NotTo(HaveOccurred())

Expand Down
18 changes: 16 additions & 2 deletions pkg/envtest/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ func defaultAssetPath(binary string) string {
}

// APIServerDefaultArgs are flags necessary to bring up apiserver.
// TODO: create test framework interface to append flag to default flags.
var defaultKubeAPIServerFlags = []string{
"--etcd-servers={{ if .EtcdURL }}{{ .EtcdURL.String }}{{ end }}",
"--cert-dir={{ .CertDir }}",
Expand Down Expand Up @@ -76,6 +75,21 @@ type Environment struct {
// existing kubeconfig, instead of trying to stand up a new control plane.
// This is useful in cases that need aggregated API servers and the like.
UseExistingCluster bool

// KubeAPIServerFlags is the set of flags passed while starting the api server.
KubeAPIServerFlags []string
}

// NewEnvironment creates a new Kubernetes test environment with default configs.
func NewEnvironment() *Environment {
return &Environment{
KubeAPIServerFlags: defaultKubeAPIServerFlags,
}
}

// AppendKubeAPIServerFlags appends additional flags to defaultKubeAPIServerFlags.
func (te *Environment) AppendKubeAPIServerFlags(flags []string) {
te.KubeAPIServerFlags = append(te.KubeAPIServerFlags, flags...)
}

// Stop stops a running server
Expand All @@ -101,7 +115,7 @@ func (te *Environment) Start() (*rest.Config, error) {
}
} else {
te.ControlPlane = integration.ControlPlane{}
te.ControlPlane.APIServer = &integration.APIServer{Args: defaultKubeAPIServerFlags}
te.ControlPlane.APIServer = &integration.APIServer{Args: te.KubeAPIServerFlags}
if os.Getenv(envKubeAPIServerBin) == "" {
te.ControlPlane.APIServer.Path = defaultAssetPath("kube-apiserver")
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/internal/controller/controller_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
var _ = BeforeSuite(func(done Done) {
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))

testenv = &envtest.Environment{}
testenv = envtest.NewEnvironment()

var err error
cfg, err = testenv.Start()
Expand Down
2 changes: 1 addition & 1 deletion pkg/internal/recorder/recorder_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
var _ = BeforeSuite(func(done Done) {
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))

testenv = &envtest.Environment{}
testenv = envtest.NewEnvironment()

var err error
cfg, err = testenv.Start()
Expand Down
2 changes: 1 addition & 1 deletion pkg/manager/manager_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var clientset *kubernetes.Clientset
var _ = BeforeSuite(func(done Done) {
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))

testenv = &envtest.Environment{}
testenv = envtest.NewEnvironment()

var err error
cfg, err = testenv.Start()
Expand Down
2 changes: 1 addition & 1 deletion pkg/source/source_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ var _ = BeforeSuite(func(done Done) {
stop = make(chan struct{})
logf.SetLogger(logf.ZapLoggerTo(GinkgoWriter, true))

testenv = &envtest.Environment{}
testenv = envtest.NewEnvironment()

var err error
config, err = testenv.Start()
Expand Down

0 comments on commit bca5e1b

Please sign in to comment.