kubernetes: Code-generator does not work outside of $GOPATH
What happened:
k8s.io/code-generator is not able to generate code for projects using Go modules (cloned outside $GOPATH).
What you expected to happen:
k8s.io/code-generator to be able to generate code for projects using Go modules (cloned outside $GOPATH).
How to reproduce it (as minimally and precisely as possible):
1. k8s.io/sample-apiserver located in $GOPATH
- Setup
k8s.io/sample-apiserverin $GOPATH
$ mkdir -p $GOPATH/src/k8s.io/
$ cd $GOPATH/src/k8s.io/
$ git clone git@github.com:kubernetes/sample-apiserver.git
$ cd sample-apiserver
$ go mod vendor
- Remove the generated code
$ rm -rf pkg/generated/
$ git diff --shortstat
38 files changed, 5407 deletions(-)
- And generate it once again
$ ./hack/update-codegen.sh
Generating deepcopy funcs
Generating clientset for wardle:v1alpha1,v1beta1 at k8s.io/sample-apiserver/pkg/generated/clientset
Generating listers for wardle:v1alpha1,v1beta1 at k8s.io/sample-apiserver/pkg/generated/listers
Generating informers for wardle:v1alpha1,v1beta1 at k8s.io/sample-apiserver/pkg/generated/informers
go: directory ../code-generator/cmd/defaulter-gen outside available modules
go: directory ../code-generator/cmd/conversion-gen outside available modules
go: directory ../code-generator/cmd/client-gen outside available modules
go: directory ../code-generator/cmd/lister-gen outside available modules
go: directory ../code-generator/cmd/informer-gen outside available modules
go: directory ../code-generator/cmd/deepcopy-gen outside available modules
go: directory ../code-generator/cmd/openapi-gen outside available modules
- Ensure that the generation works
$ git diff --shortstat
1 file changed, 6 insertions(+)
2. k8s.io/sample-apiserver located outside $GOPATH
- Setup
k8s.io/sample-apiserveroutside $GOPATH
$ cd $HOME/git/
$ git clone git@github.com:kubernetes/sample-apiserver.git
$ cd sample-apiserver
$ go mod vendor
- Remove the generated code
$ rm -rf pkg/generated/
$ git diff --shortstat
38 files changed, 5407 deletions(-)
- And generate it once again
$ ./hack/update-codegen.sh
Generating deepcopy funcs
Generating clientset for wardle:v1alpha1,v1beta1 at k8s.io/sample-apiserver/pkg/generated/clientset
Generating listers for wardle:v1alpha1,v1beta1 at k8s.io/sample-apiserver/pkg/generated/listers
Generating informers for wardle:v1alpha1,v1beta1 at k8s.io/sample-apiserver/pkg/generated/informers
go: directory ../code-generator/cmd/defaulter-gen outside available modules
go: directory ../code-generator/cmd/conversion-gen outside available modules
go: directory ../code-generator/cmd/client-gen outside available modules
go: directory ../code-generator/cmd/lister-gen outside available modules
go: directory ../code-generator/cmd/informer-gen outside available modules
go: directory ../code-generator/cmd/deepcopy-gen outside available modules
go: directory ../code-generator/cmd/openapi-gen outside available modules
- Ensure that the generation generated nothing
$ git diff --shortstat
39 files changed, 1 insertion(+), 5407 deletions(-)
Anything else we need to know?:
Environment:
- Kubernetes version (use
kubectl version): - Cloud provider or hardware configuration:
- OS (e.g:
cat /etc/os-release): - Kernel (e.g.
uname -a): - Install tools:
- Network plugin and version (if this is a network-related bug):
- Others:
About this issue
- Original URL
- State: open
- Created 5 years ago
- Reactions: 1
- Comments: 16 (12 by maintainers)
Commits related to this issue
- Regen deps (#17) * Regen deps ./hack/update-deps.sh --upgrade && ./hack/update-codegen.sh * Regen again? * Manually fix the reconcilers. — committed to knative/networking by deleted user 4 years ago
/assign
I will take a look at it.
Potential fix in https://github.com/kubernetes/kubernetes/pull/85559