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

add api fails with: deepcopy.go:885] Hit an unsupported type invalid type for invalid type #2979

Closed
mdbooth opened this issue May 6, 2020 · 8 comments
Assignees
Labels
triage/duplicate Indicates an issue is a duplicate of other open issue. triage/not-reproducible Indicates an issue can not be reproduced as described.
Milestone

Comments

@mdbooth
Copy link

mdbooth commented May 6, 2020

This is with a vanilla operator, no customisation. TL;DR:

$ operator-sdk new foo
$ cd foo
$ operator-sdk add api --api-version=foo.example.com/v1alpha1 --kind=Foo
...
INFO[0000] Running deepcopy code-generation for Custom Resource group versions: [foo:[v1alpha1], ]
F0506 12:04:45.607871   10761 deepcopy.go:885] Hit an unsupported type invalid type for invalid type, from github.com/openstack-k8s-operators/foo/pkg/apis/foo/v1alpha1.Foo

Full output:

$ pwd
/home/mbooth/go/src/github.com/openstack-k8s-operators

$ operator-sdk new foo --verbose
DEBU[0000] Debug logging is set
INFO[0000] Creating new Go operator 'foo'.
INFO[0000] Created go.mod
INFO[0000] Created tools.go
INFO[0000] Created cmd/manager/main.go
INFO[0000] Created build/Dockerfile
INFO[0000] Created build/bin/entrypoint
INFO[0000] Created build/bin/user_setup
INFO[0000] Created deploy/service_account.yaml
INFO[0000] Created deploy/role.yaml
INFO[0000] Created deploy/role_binding.yaml
INFO[0000] Created deploy/operator.yaml
INFO[0000] Created pkg/apis/apis.go
INFO[0000] Created pkg/controller/controller.go
INFO[0000] Created version/version.go
INFO[0000] Created .gitignore
INFO[0000] Validating project
DEBU[0000] Running []string{"go", "build", "./..."}
INFO[0002] Project validation successful.
INFO[0002] Project creation complete.

$ cd foo

$ operator-sdk add api --api-version=foo.example.com/v1alpha1 --kind=Foo --verbose
DEBU[0000] Debug logging is set
INFO[0000] Generating api version foo.example.com/v1alpha1 for kind Foo.
INFO[0000] Created pkg/apis/foo/group.go
INFO[0000] Created pkg/apis/foo/v1alpha1/foo_types.go
INFO[0000] Created pkg/apis/addtoscheme_foo_v1alpha1.go
INFO[0000] Created pkg/apis/foo/v1alpha1/register.go
INFO[0000] Created pkg/apis/foo/v1alpha1/doc.go
INFO[0000] Created deploy/crds/foo.example.com_v1alpha1_foo_cr.yaml
DEBU[0000] Setting GOROOT=/usr/lib/golang
INFO[0000] Running deepcopy code-generation for Custom Resource group versions: [foo:[v1alpha1], ]
F0506 12:04:45.607871   10761 deepcopy.go:885] Hit an unsupported type invalid type for invalid type, from github.com/openstack-k8s-operators/foo/pkg/apis/foo/v1alpha1.Foo

My environment:

$ go version
go version go1.13.10 linux/amd64

$ operator-sdk version
operator-sdk version: "v0.17.0", commit: "2fd7019f856cdb6f6618e2c3c80d15c3c79d1b6c", kubernetes version: "unknown", go version: "go1.13.10 linux/amd64"

$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/mbooth/.cache/go-build"
GOENV="/home/mbooth/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/mbooth/go"
GOPRIVATE=""
GOPROXY="direct"
GOROOT="/usr/lib/golang"
GOSUMDB="off"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
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-build274026007=/tmp/go-build -gno-record-gcc-switches"
@mdbooth
Copy link
Author

mdbooth commented May 6, 2020

This issues appears to be identical to #2288 . I would have reopened that issue, but that doesn't seem to be a thing in github.

@mdbooth
Copy link
Author

mdbooth commented May 6, 2020

I have reproduced this with an empty GOPATH, and creating foo directly under $GOPATH/src

@mdbooth
Copy link
Author

mdbooth commented May 6, 2020

I CANNOT reproduce this in the same environment with the same GOPATH when I use a locally-built version of the v0.17.0 release tag.

To be clear:

locally-built operator-sdk from git tag 0.17.0 (2fd7019) WORKS

downloaded release build operator-sdk-v0.17.0-x86_64-linux-gnu run in the same directory, same commands, same environment, DOES NOT WORK

The release version reports:
$ ~/operator-sdk-v0.17.0-x86_64-linux-gnu version
operator-sdk version: "v0.17.0", commit: "2fd7019f856cdb6f6618e2c3c80d15c3c79d1b6c", kubernetes version: "unknown", go version: "go1.13.10 linux/amd64"

Locally-built version reports:
$ ~/go2/bin/operator-sdk version
operator-sdk version: "v0.17.0", commit: "2fd7019f856cdb6f6618e2c3c80d15c3c79d1b6c", kubernetes version: "v1.17.2", go version: "go1.13.10 linux/amd64"

@estroz
Copy link
Member

estroz commented May 8, 2020

@mdbooth I am unable to reproduce this issue when downloading from the v0.17.0 release:

$ curl -sSL -o operator-sdk https://github.com/operator-framework/operator-sdk/releases/download/v0.17.0/operator-sdk-v0.17.0-x86_64-linux-gnu
$ curl -sSL -o operator-sdk.asc https://github.com/operator-framework/operator-sdk/releases/download/v0.17.0/operator-sdk-v0.17.0-x86_64-linux-gnu.asc
$ gpg --verify operator-sdk.asc
$ mv operator-sdk ~/go/bin/
$ command -v operator-sdk
/home/estroz/go/bin/operator-sdk

With $GOPATH unset:

$ unset GOPATH
$ go env GOPATH
/home/estroz/go
$ pwd
/home/projects
$ operator-sdk new foo --repo github.com/example/foo
INFO[0000] Creating new Go operator 'foo'.              
INFO[0000] Created go.mod                               
...        
INFO[0002] Project validation successful.               
INFO[0002] Project creation complete.         
$ operator-sdk add api --api-version=foo.example.com/v1alpha1 --kind=Foo
INFO[0000] Generating api version foo.example.com/v1alpha1 for kind Foo. 
...
INFO[0000] Running deepcopy code-generation for Custom Resource group versions: [foo:[v1alpha1], ] 
...             
INFO[0006] API generation complete.

With $GOPATH set:

$ cd ../go/src/github.com
$ mkdir test-org
$ cd test-org
$ export GOPATH=$(go env GOPATH)
$ operator-sdk new foo
INFO[0000] Creating new Go operator 'foo'.              
INFO[0000] Created go.mod                               
...        
INFO[0002] Project validation successful.               
INFO[0002] Project creation complete.         
$ operator-sdk add api --api-version=foo.example.com/v1alpha1 --kind=Foo
INFO[0000] Generating api version foo.example.com/v1alpha1 for kind Foo. 
...
INFO[0000] Running deepcopy code-generation for Custom Resource group versions: [foo:[v1alpha1], ] 
...             
INFO[0006] API generation complete.

This sounds like an environment issue.

/triage not-reproducible

@openshift-ci-robot openshift-ci-robot added the triage/not-reproducible Indicates an issue can not be reproduced as described. label May 8, 2020
@jmccormick2001
Copy link
Contributor

I tried this on a Centos box with the 0.17 released binary, and also from a local build of master, both seem to work so not sure what could be the issue.

@nufy323
Copy link

nufy323 commented May 9, 2020

I tried this on a Centos box with the 0.17 released binary, and also from a local build of master, both seem to work so not sure what could be the issue.
yes, it seems to work, thanks

@joelanford
Copy link
Member

@Ssecond @mdbooth Did you see #1854 (comment)?

Pretty sure it's the same issue.

@joelanford joelanford self-assigned this May 11, 2020
@estroz estroz added this to the Backlog milestone May 11, 2020
@joelanford joelanford added the triage/duplicate Indicates an issue is a duplicate of other open issue. label May 19, 2020
@joelanford
Copy link
Member

Closing since this seems like a duplicate. Please open a new issue if the responses don't help you resolve it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage/duplicate Indicates an issue is a duplicate of other open issue. triage/not-reproducible Indicates an issue can not be reproduced as described.
Projects
None yet
Development

No branches or pull requests

6 participants