From 549f806338648e390f17b3054858a3685b303705 Mon Sep 17 00:00:00 2001 From: Solly Ross Date: Wed, 9 Jan 2019 13:14:30 -0800 Subject: [PATCH 1/2] use %v err in envtest It's the general pattern to use ("%v", err) instead of ("%s", err.Error()) when formatting errors. --- pkg/envtest/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/envtest/server.go b/pkg/envtest/server.go index 0d48467987..65739ae7ae 100644 --- a/pkg/envtest/server.go +++ b/pkg/envtest/server.go @@ -181,7 +181,7 @@ func (te *Environment) startControlPlane() error { } } if numTries == maxRetries { - return fmt.Errorf("failed to start the controlplane. retried %d times: %s", numTries, err.Error()) + return fmt.Errorf("failed to start the controlplane. retried %d times: %v", numTries, err) } return nil } From 6101f6954a042342f1153c9b938813ad6995052c Mon Sep 17 00:00:00 2001 From: Solly Ross Date: Wed, 9 Jan 2019 13:22:27 -0800 Subject: [PATCH 2/2] Add some logging to envtest This adds some logging to envtest, to make it easier to debug oddities with a testing environment. --- pkg/envtest/crd.go | 3 +++ pkg/envtest/server.go | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/pkg/envtest/crd.go b/pkg/envtest/crd.go index 3c5706a575..28d8b7c10c 100644 --- a/pkg/envtest/crd.go +++ b/pkg/envtest/crd.go @@ -174,6 +174,7 @@ func CreateCRDs(config *rest.Config, crds []*apiextensionsv1beta1.CustomResource // Create each CRD for _, crd := range crds { + log.V(1).Info("installing CRD", "crd", crd) if _, err := cs.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd); err != nil { return err } @@ -186,6 +187,7 @@ func readCRDs(path string) ([]*apiextensionsv1beta1.CustomResourceDefinition, er // Get the CRD files var files []os.FileInfo var err error + log.V(1).Info("reading CRDs from path", "path", path) if files, err = ioutil.ReadDir(path); err != nil { return nil, err } @@ -215,6 +217,7 @@ func readCRDs(path string) ([]*apiextensionsv1beta1.CustomResourceDefinition, er continue } + log.V(1).Info("read CRD from file", "file", file) crds = append(crds, crd) } return crds, nil diff --git a/pkg/envtest/server.go b/pkg/envtest/server.go index 65739ae7ae..e85e9908d1 100644 --- a/pkg/envtest/server.go +++ b/pkg/envtest/server.go @@ -26,8 +26,12 @@ import ( "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client/config" "sigs.k8s.io/testing_frameworks/integration" + + logf "sigs.k8s.io/controller-runtime/pkg/runtime/log" ) +var log = logf.KBLog.WithName("test-env") + // Default binary path for test framework const ( envKubeAPIServerBin = "TEST_ASSET_KUBE_APISERVER" @@ -117,9 +121,11 @@ func (te Environment) getAPIServerFlags() []string { // Start starts a local Kubernetes server and updates te.ApiserverPort with the port it is listening on func (te *Environment) Start() (*rest.Config, error) { if te.UseExistingCluster { + log.V(1).Info("using existing cluster") if te.Config == nil { // we want to allow people to pass in their own config, so // only load a config if it hasn't already been set. + log.V(1).Info("automatically acquiring client configuration") var err error te.Config, err = config.GetConfig() @@ -153,6 +159,7 @@ func (te *Environment) Start() (*rest.Config, error) { te.ControlPlane.APIServer.StartTimeout = te.ControlPlaneStartTimeout te.ControlPlane.APIServer.StopTimeout = te.ControlPlaneStopTimeout + log.V(1).Info("starting control plane", "api server flags", te.ControlPlane.APIServer.Args) if err := te.startControlPlane(); err != nil { return nil, err } @@ -163,6 +170,7 @@ func (te *Environment) Start() (*rest.Config, error) { } } + log.V(1).Info("installing CRDs") _, err := InstallCRDs(te.Config, CRDInstallOptions{ Paths: te.CRDDirectoryPaths, CRDs: te.CRDs, @@ -179,6 +187,7 @@ func (te *Environment) startControlPlane() error { if err == nil { break } + log.Error(err, "unable to start the controlplane", "tries", numTries) } if numTries == maxRetries { return fmt.Errorf("failed to start the controlplane. retried %d times: %v", numTries, err)