operator-sdk: make test fails

Bug Report

What did you do?

Create new folder and run

go mod init example.com/m/v2

operator-sdk init --plugins go/v3 --domain example.org --owner "Your name"

operator-sdk create api --group ship --version v1beta1 --kind Frigate

make test

What did you expect to see?

PASS

What did you see instead? Under which circumstances?

/home/deb/osdk/bin/controller-gen "crd:trivialVersions=true,preserveUnknownFields=false" rbac:roleName=manager-role webhook paths="./..." output:crd:artifacts:config=config/crd/bases
/home/deb/osdk/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..."
go fmt ./...
controllers/suite_test.go
go vet ./...
/home/deb/osdk/bin/setup-envtest use 1.21
Version: 1.21.2
OS/Arch: linux/amd64
Path: /home/deb/.local/share/kubebuilder-envtest/k8s/1.21.2-linux-amd64
go test ./... -coverprofile cover.out
?       example.com/m/v2        [no test files]
?       example.com/m/v2/api/v1beta1    [no test files]
Running Suite: Controller Suite
===============================
Random Seed: 1627252835
Will run 0 of 0 specs

STEP: bootstrapping test environment
2021-07-25T23:40:35.352+0100    DEBUG   controller-runtime.test-env     starting control plane
2021-07-25T23:40:35.353+0100    ERROR   controller-runtime.test-env     unable to start the controlplane        {"tries": 0, "error": "fork/exec /usr/local/kubebuilder/bin/etcd: no such file or directory"}
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).startControlPlane
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:330
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).Start
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:260
example.com/m/v2/controllers.glob..func1
        /home/deb/osdk/controllers/suite_test.go:58
github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:113
github.com/onsi/ginkgo/internal/leafnodes.(*runner).run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:64
github.com/onsi/ginkgo/internal/leafnodes.(*simpleSuiteNode).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes.go:25
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runBeforeSuite
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:123
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:63
github.com/onsi/ginkgo/internal/suite.(*Suite).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:79
github.com/onsi/ginkgo.runSpecsWithCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:238
github.com/onsi/ginkgo.RunSpecsWithDefaultAndCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:221
example.com/m/v2/controllers.TestAPIs
        /home/deb/osdk/controllers/suite_test.go:44
testing.tRunner
        /usr/local/go/src/testing/testing.go:1193
2021-07-25T23:40:35.353+0100    ERROR   controller-runtime.test-env     unable to start the controlplane        {"tries": 1, "error": "fork/exec /usr/local/kubebuilder/bin/etcd: no such file or directory"}
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).startControlPlane
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:330
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).Start
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:260
example.com/m/v2/controllers.glob..func1
        /home/deb/osdk/controllers/suite_test.go:58
github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:113
github.com/onsi/ginkgo/internal/leafnodes.(*runner).run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:64
github.com/onsi/ginkgo/internal/leafnodes.(*simpleSuiteNode).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes.go:25
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runBeforeSuite
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:123
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:63
github.com/onsi/ginkgo/internal/suite.(*Suite).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:79
github.com/onsi/ginkgo.runSpecsWithCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:238
github.com/onsi/ginkgo.RunSpecsWithDefaultAndCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:221
example.com/m/v2/controllers.TestAPIs
        /home/deb/osdk/controllers/suite_test.go:44
testing.tRunner
        /usr/local/go/src/testing/testing.go:1193
2021-07-25T23:40:35.354+0100    ERROR   controller-runtime.test-env     unable to start the controlplane        {"tries": 2, "error": "fork/exec /usr/local/kubebuilder/bin/etcd: no such file or directory"}
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).startControlPlane
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:330
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).Start
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:260
example.com/m/v2/controllers.glob..func1
        /home/deb/osdk/controllers/suite_test.go:58
github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:113
github.com/onsi/ginkgo/internal/leafnodes.(*runner).run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:64
github.com/onsi/ginkgo/internal/leafnodes.(*simpleSuiteNode).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes.go:25
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runBeforeSuite
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:123
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:63
github.com/onsi/ginkgo/internal/suite.(*Suite).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:79
github.com/onsi/ginkgo.runSpecsWithCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:238
github.com/onsi/ginkgo.RunSpecsWithDefaultAndCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:221
example.com/m/v2/controllers.TestAPIs
        /home/deb/osdk/controllers/suite_test.go:44
testing.tRunner
        /usr/local/go/src/testing/testing.go:1193
2021-07-25T23:40:35.354+0100    ERROR   controller-runtime.test-env     unable to start the controlplane        {"tries": 3, "error": "fork/exec /usr/local/kubebuilder/bin/etcd: no such file or directory"}
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).startControlPlane
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:330
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).Start
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:260
example.com/m/v2/controllers.glob..func1
        /home/deb/osdk/controllers/suite_test.go:58
github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:113
github.com/onsi/ginkgo/internal/leafnodes.(*runner).run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:64
github.com/onsi/ginkgo/internal/leafnodes.(*simpleSuiteNode).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes.go:25
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runBeforeSuite
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:123
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:63
github.com/onsi/ginkgo/internal/suite.(*Suite).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:79
github.com/onsi/ginkgo.runSpecsWithCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:238
github.com/onsi/ginkgo.RunSpecsWithDefaultAndCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:221
example.com/m/v2/controllers.TestAPIs
        /home/deb/osdk/controllers/suite_test.go:44
testing.tRunner
        /usr/local/go/src/testing/testing.go:1193
2021-07-25T23:40:35.354+0100    ERROR   controller-runtime.test-env     unable to start the controlplane        {"tries": 4, "error": "fork/exec /usr/local/kubebuilder/bin/etcd: no such file or directory"}
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).startControlPlane
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:330
sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).Start
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:260
example.com/m/v2/controllers.glob..func1
        /home/deb/osdk/controllers/suite_test.go:58
github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:113
github.com/onsi/ginkgo/internal/leafnodes.(*runner).run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go:64
github.com/onsi/ginkgo/internal/leafnodes.(*simpleSuiteNode).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes.go:25
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).runBeforeSuite
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:123
github.com/onsi/ginkgo/internal/specrunner.(*SpecRunner).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go:63
github.com/onsi/ginkgo/internal/suite.(*Suite).Run
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/internal/suite/suite.go:79
github.com/onsi/ginkgo.runSpecsWithCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:238
github.com/onsi/ginkgo.RunSpecsWithDefaultAndCustomReporters
        /home/deb/osdk/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go:221
example.com/m/v2/controllers.TestAPIs
        /home/deb/osdk/controllers/suite_test.go:44
testing.tRunner
        /usr/local/go/src/testing/testing.go:1193
Failure [0.002 seconds]
[BeforeSuite] BeforeSuite
/home/deb/osdk/controllers/suite_test.go:49

  Unexpected error:
      <*fmt.wrapError | 0xc00007e600>: {
          msg: "unable to start control plane itself: failed to start the controlplane. retried 5 times: fork/exec /usr/local/kubebuilder/bin/etcd: no such file or directory",
          err: <*fmt.wrapError | 0xc00007e5e0>{
              msg: "failed to start the controlplane. retried 5 times: fork/exec /usr/local/kubebuilder/bin/etcd: no such file or directory",
              err: <*fs.PathError | 0xc00033a7b0>{
                  Op: "fork/exec",
                  Path: "/usr/local/kubebuilder/bin/etcd",
                  Err: <syscall.Errno>0x2,
              },
          },
      }
      unable to start control plane itself: failed to start the controlplane. retried 5 times: fork/exec /usr/local/kubebuilder/bin/etcd: no such file or directory
  occurred

  /home/deb/osdk/controllers/suite_test.go:59
------------------------------
STEP: tearing down the test environment
Panic [0.000 seconds]
[AfterSuite] AfterSuite
/home/deb/osdk/controllers/suite_test.go:73

  Test Panicked
  runtime error: invalid memory address or nil pointer dereference
  /usr/local/go/src/runtime/panic.go:212

  Full Stack Trace
  sigs.k8s.io/controller-runtime/pkg/internal/testing/controlplane.(*APIServer).Stop(0xc0005b4000, 0x4b6acd, 0x177ce51)
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/testing/controlplane/apiserver.go:417 +0x2d
  sigs.k8s.io/controller-runtime/pkg/internal/testing/controlplane.(*ControlPlane).Stop(0xc0002ee000, 0x4f5b00, 0xc00011f560)
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/testing/controlplane/plane.go:87 +0x1e5
  sigs.k8s.io/controller-runtime/pkg/envtest.(*Environment).Stop(0xc0002ee000, 0x21, 0x0)
        /home/deb/osdk/vendor/sigs.k8s.io/controller-runtime/pkg/envtest/server.go:194 +0xa5
  example.com/m/v2/controllers.glob..func2()
        /home/deb/osdk/controllers/suite_test.go:75 +0x5b
  example.com/m/v2/controllers.TestAPIs(0xc00048cc00)
        /home/deb/osdk/controllers/suite_test.go:44 +0xcd
  testing.tRunner(0xc00048cc00, 0x1823cb8)
        /usr/local/go/src/testing/testing.go:1193 +0xef
  created by testing.(*T).Run
        /usr/local/go/src/testing/testing.go:1238 +0x2b3
------------------------------


Ran 0 of 0 Specs in 0.002 seconds
FAIL! -- 0 Passed | 0 Failed | 0 Pending | 0 Skipped
You're using deprecated Ginkgo functionality:
=============================================
Ginkgo 2.0 is under active development and will introduce (a small number of) breaking changes.
To learn more, view the migration guide at https://github.com/onsi/ginkgo/blob/v2/docs/MIGRATING_TO_V2.md
To comment, chime in at https://github.com/onsi/ginkgo/issues/711

  You are using a custom reporter.  Support for custom reporters will likely be removed in V2.  Most users were using them to generate junit or teamcity reports and this functionality will be merged into the core reporter.  In addition, Ginkgo 2.0 will support emitting a JSON-formatted report that users can then manipulate to generate custom reports.

  If this change will be impactful to you please leave a comment on https://github.com/onsi/ginkgo/issues/711
  Learn more at: https://github.com/onsi/ginkgo/blob/v2/docs/MIGRATING_TO_V2.md#removed-custom-reporters

To silence deprecations that can be silenced set the following environment variable:
  ACK_GINKGO_DEPRECATIONS=1.16.4

--- FAIL: TestAPIs (0.00s)
FAIL
coverage: 0.0% of statements
FAIL    example.com/m/v2/controllers    0.017s
FAIL
make: *** [Makefile:89: test] Error 1

Environment

Operator type:

/language go

Kubernetes cluster type:

vanilla

$ operator-sdk version

operator-sdk version: "unknown", commit: "unknown", kubernetes version: "unknown", go version: "go1.16.6", GOOS: "windows", GOARCH: "amd64"

$ kubectl version

Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.8", GitCommit:"9f2892aab98fe339f3bd70e3c470144299398ace", GitTreeState:"clean", BuildDate:"2020-08-13T16:12:48Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f79527be4afd95bf39", GitTreeState:"clean", BuildDate:"2021-07-15T20:59:07Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}

Possible Solution

Additional context

Running inside WSL 2 Ubuntu 20 on Windows 10

Doing shell = /bin/bash does not work. Are KB and friends a prerequisite?

Video

https://user-images.githubusercontent.com/4870868/126916533-361eb546-3af0-4f59-a811-e67e82460f08.mp4

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 26 (3 by maintainers)

Most upvoted comments

If we execute make envtest manually. We can execute setup-envtest use manually to check the information and add the path it prints out to the BinaryAssetsDirectory

Yes, I hit the same issue again on WSL container.

➜  recycle ./bin/setup-envtest use 
Version: 1.23.1
OS/Arch: linux/amd64
md5: *********************
Path: /home/username/.local/share/kubebuilder-envtest/k8s/1.23.1-linux-amd64