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

  1. Setup k8s.io/sample-apiserver in $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
  1. Remove the generated code
$ rm -rf pkg/generated/
$ git diff --shortstat
 38 files changed, 5407 deletions(-)
  1. 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
  1. Ensure that the generation works
$ git diff --shortstat
 1 file changed, 6 insertions(+)

2. k8s.io/sample-apiserver located outside $GOPATH

  1. Setup k8s.io/sample-apiserver outside $GOPATH
$ cd $HOME/git/
$ git clone git@github.com:kubernetes/sample-apiserver.git
$ cd sample-apiserver
$ go mod vendor
  1. Remove the generated code
$ rm -rf pkg/generated/
$ git diff --shortstat
 38 files changed, 5407 deletions(-)
  1. 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
  1. 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

Most upvoted comments

/assign

I will take a look at it.