kubernetes / code-generator

Generators for kube-like API types
Apache License 2.0
1.71k stars 412 forks source link

[0.17.1] Error: Failed making a parser: unable to add directory #96

Closed milosgajdos closed 4 years ago

milosgajdos commented 4 years ago

I'm trying to use code-generator in my new project.

Following the sample-controller example I've a custom resource defined in pkg/apis/workspace/v1 then I run go mod vendor to vendor the dependencies (including the code-generator) and then the hack script which produces this error (NOTE: I've turned on bash debug flag)

++ dirname ./scripts/../scripts/update-codegen.sh
+ SCRIPT_ROOT=./scripts/../scripts/..
++ cd ./scripts/../scripts/..
++ ls -d -1 ./vendor/k8s.io/code-generator
+ CODEGEN_PKG=./vendor/k8s.io/code-generator
++ dirname ./scripts/../scripts/update-codegen.sh
+ bash ./vendor/k8s.io/code-generator/generate-groups.sh deepcopy,client,informer,lister workspace-controller-container/pkg/generated workspace-controller-container/pkg/apis workspace:v1 --output-base ./scripts/../scripts/../.. --go-header-file ./scripts/../scripts/../scripts/boilerplate.go.txt
Generating deepcopy funcs

F0316 10:00:19.588951   17354 main.go:82] Error: Failed making a parser: unable to add directory "workspace-controller-container/pkg/apis/workspace/v1": unable to import "workspace-controller-container/pkg/apis/workspace/v1": open /home/mgajdos/code/workspace-controller-container/vendor/workspace-controller-container/pkg/apis/workspace/v1: no such file or directory

My go version:

$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/mgajdos/.cache/go-build"
GOENV="/home/mgajdos/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/mgajdos/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/mgajdos/code/workspace-controller-container/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build266687789=/tmp/go-build -gno-record-gcc-switches"

My go.mod

module workspace-controller

go 1.14

require (
    github.com/openshift/api v0.0.0-20200116145750-0e2ff1e215dd
    github.com/openshift/client-go v0.0.0-20200116152001-92a2713fa240
    k8s.io/api v0.17.1
    k8s.io/apimachinery v0.17.1
    k8s.io/client-go v0.17.1
    k8s.io/code-generator v0.17.1
    k8s.io/klog v1.0.0
)

I'm at loss at what's going on here at this point so I'd appreciate any pointers.

milosgajdos commented 4 years ago

Strangely enough, this had to do with misnaming the module name and directory path it is in.