Golang dep unable to resolve dependencies

9/10/2018

I am using kubebuilder to create kubernetes operator project. After running the project init command described in quickstart guide

kubebuilder init --domain k8s.io --license apache2 --owner "The Kubernetes Authors"

dep ensure returns with error log given below.

Solving failure: No versions of k8s.io/client-go met constraints:
    v8.0.0: Could not introduce k8s.io/client-go@v8.0.0, as it is not allowed by constraints from the following projects:
    kubernetes-1.10.1 from (root)
    kubernetes-1.10.1 from sigs.k8s.io/controller-runtime@master

    v7.0.0: Could not introduce k8s.io/client-go@v7.0.0, as it is not allowed by constraints from the following projects:
    kubernetes-1.10.1 from (root)
    kubernetes-1.10.1 from sigs.k8s.io/controller-runtime@master

    v6.0.0: Could not introduce k8s.io/client-go@v6.0.0, as it is not allowed by constraints from the following projects:
    kubernetes-1.10.1 from (root)
    kubernetes-1.10.1 from sigs.k8s.io/controller-runtime@master
-- captainchhala
godeps
kubebuilder
kubernetes

1 Answer

9/10/2018

Try using the latest kubebuilder from here. It's likely that the dependencies for the version in the quick start are out of date.

It works fine for me with v1.0.3

~/go/src/github.com $ kubebuilder init --domain k8s.io --license apache2 --owner "The Kubernetes Authors"
Run `dep ensure` to fetch dependencies (Recommended) [y/n]?
y
dep ensure
Running make...
make
go generate ./pkg/... ./cmd/...
go fmt ./pkg/... ./cmd/...
go vet ./pkg/... ./cmd/...
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go all
CRD manifests generated under '/root/go/src/github.com/config/crds'
RBAC manifests generated under '/root/go/src/github.com/config/rbac'
go test ./pkg/... ./cmd/... -coverprofile cover.out
?       github.com/pkg/apis [no test files]
?       github.com/pkg/controller   [no test files]
ok      github.com/pkg/errors   0.207s  coverage: 100.0% of statements
?       github.com/cmd/manager  [no test files]
go build -o bin/manager github.com/cmd/manager
Next: Define a resource with:
$ kubebuilder create api
-- Rico
Source: StackOverflow