Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue in building kustomize and controller-gen with go get: disabled by -mod=vendor #383

Closed
andreaskaris opened this issue Oct 28, 2020 · 2 comments · Fixed by #386
Closed

Comments

@andreaskaris
Copy link
Contributor

Issue in building kustomize and controller-gen with go get: disabled by -mod=vendor

GOPATH=/root/golang
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/usr/local/kubebuilder/bin
[root@openshift-jumpserver-0 ~]# go version
go version go1.13.15 linux/amd64

Start from a clean sheet:

rm -Rf golang
mkdir golang

Get source:

go get github.com/openshift/sriov-network-operator
cd $GOPATH/src/github.com/openshift/sriov-network-operator/

Run make deploy-setup:

[root@openshift-jumpserver-0 sriov-network-operator]# make deploy-setup
which: no controller-gen in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/usr/local/kubebuilder/bin)
which: no kustomize in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/usr/local/kubebuilder/bin)
go: creating new go.mod: module tmp
go get: disabled by -mod=vendor
make: *** [Makefile:127: controller-gen] Error 1

What fails here is the build of kustomize and controller-gen:

[root@openshift-jumpserver-0 sriov-network-operator]# make controller-gen
which: no controller-gen in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/usr/local/kubebuilder/bin)
which: no kustomize in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/usr/local/kubebuilder/bin)
go: creating new go.mod: module tmp
go get: disabled by -mod=vendor
make: *** [Makefile:127: controller-gen] Error 1
[root@openshift-jumpserver-0 sriov-network-operator]# make kustomize
which: no controller-gen in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/usr/local/kubebuilder/bin)
which: no kustomize in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/usr/local/kubebuilder/bin)
go: creating new go.mod: module tmp
go get: disabled by -mod=vendor
make: *** [Makefile:142: kustomize] Error 1

The problem is this here in the Makefile:

[root@openshift-jumpserver-0 sriov-network-operator]# grep GOFLAGS Makefile 
export GOFLAGS=-mod=vendor
[root@openshift-jumpserver-0 sriov-network-operator]# grep GO111 Makefile 
export GO111MODULE=on

So, I had to modify the Makefile:

[root@openshift-jumpserver-0 sriov-network-operator]# diff Makefile.old Makefile
132c132
< 	go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.3.0 ;\
---
> 	GOFLAGS="" go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.3.0 ;\
147c147
< 	go get sigs.k8s.io/kustomize/kustomize/v3@v3.5.4 ;\
---
> 	GOFLAGS="" go get sigs.k8s.io/kustomize/kustomize/v3@v3.5.4 ;\

And then, make deploy-setup goes through.

@mrVectorz
Copy link
Contributor

Your golang version is too old.
Tested on your host with go1.15.3 and it worked.

root@openshift-jumpserver-0 ~]# yum remove golang -y
(...)
Removed:
  golang-1.13.15-1.module+el8.2.0+7662+fa98b974.x86_64  golang-bin-1.13.15-1.module+el8.2.0+7662+fa98b974.x86_64  golang-src-1.13.15-1.module+el8.2.0+7662+fa98b974.noarch  keyutils-libs-devel-1.5.10-6.el8.x86_64  krb5-devel-1.17-18.el8.x86_64   libcom_err-devel-1.45.4-3.el8.x86_64  libkadm5-1.17-18.el8.x86_64    
  libselinux-devel-2.9-3.el8.x86_64                     libsepol-devel-2.9-1.el8.x86_64                           libverto-devel-0.3.0-5.el8.x86_64                         openssl-devel-1:1.1.1c-15.el8.x86_64     pcre2-devel-10.32-1.el8.x86_64  pcre2-utf16-10.32-1.el8.x86_64        pcre2-utf32-10.32-1.el8.x86_64 
  zlib-devel-1.2.11-13.el8.x86_64                      

Complete!
[root@openshift-jumpserver-0 ~]#

Then installed the new one:

[root@openshift-jumpserver-0 ~]# rm -Rf golang
[root@openshift-jumpserver-0 ~]# mkdir golang
[root@openshift-jumpserver-0 ~]# curl -k -L https://golang.org/dl/go1.15.3.linux-amd64.tar.gz -o go1.15.3.linux-amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    75  100    75    0     0    806      0 --:--:-- --:--:-- --:--:--   815
100  115M  100  115M    0     0  92.6M      0  0:00:01  0:00:01 --:--:--  111M
[root@openshift-jumpserver-0 ~]# tar -C /root/go/ -xzf go1.15.3.linux-amd64.tar.gz
[root@openshift-jumpserver-0 ~]# export GOPATH=/root/golang/
[root@openshift-jumpserver-0 ~]# export PATH=$PATH:/root/go/bin/
[root@openshift-jumpserver-0 ~]# go get github.com/openshift/sriov-network-operator


[root@openshift-jumpserver-0 ~]# cd $GOPATH/src/github.com/openshift/sriov-network-operator/
[root@openshift-jumpserver-0 sriov-network-operator]# make deploy-setup
which: no controller-gen in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/root/go/bin/)
which: no kustomize in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/golang/bin:/root/go/bin/)
go: creating new go.mod: module tmp
go: downloading sigs.k8s.io/controller-tools v0.3.0
go: found sigs.k8s.io/controller-tools/cmd/controller-gen in sigs.k8s.io/controller-tools v0.3.0
go: downloading k8s.io/apimachinery v0.18.2
go: downloading golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72
go: downloading k8s.io/api v0.18.2
go: downloading github.com/fatih/color v1.7.0
go: downloading sigs.k8s.io/yaml v1.2.0
go: downloading github.com/spf13/cobra v0.0.5
go: downloading k8s.io/apiextensions-apiserver v0.18.2
go: downloading github.com/mattn/go-colorable v0.1.2
go: downloading github.com/gobuffalo/flect v0.2.0
go: downloading github.com/mattn/go-isatty v0.0.8
go: downloading github.com/spf13/pflag v1.0.5
go: downloading gopkg.in/yaml.v2 v2.2.8
go: downloading golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7
go: downloading github.com/inconshreveable/mousetrap v1.0.0
go: downloading k8s.io/klog v1.0.0
go: downloading github.com/gogo/protobuf v1.3.1
go: downloading github.com/google/gofuzz v1.1.0
go: downloading k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89
go: downloading gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966
go: downloading sigs.k8s.io/structured-merge-diff/v3 v3.0.0
go: downloading gopkg.in/inf.v0 v0.9.1
go: downloading golang.org/x/net v0.0.0-20191004110552-13f9640d40b9
go: downloading github.com/json-iterator/go v1.1.8
go: downloading github.com/modern-go/reflect2 v1.0.1
go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: downloading golang.org/x/text v0.3.2
/root/golang//bin/controller-gen "crd:trivialVersions=true" webhook paths="./..." output:crd:artifacts:config=config/crd/bases
go: creating new go.mod: module tmp
(...)

@andreaskaris
Copy link
Contributor Author

Yep, but as discussed, either we'd need to fail on "golang version too low" or we'd fix this with the aforementioned workaround ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants