Skip to content

Upgrading from v0.16.5 -> v0.17.0 causes controller-gen crd generator to panic #1123

@kate-osborn

Description

@kate-osborn

We are getting the following panic after upgrading from 0.16.5 to 0.17.0 when running the crd generator:

go run sigs.k8s.io/controller-tools/cmd/controller-gen@v0.17.0 crd object paths=./apis/... output:crd:artifacts:config=config/crd/bases go: downloading sigs.k8s.io/controller-tools v0.17.0 panic: interface conversion: *types.Struct is not interface { Obj() *types.TypeName }: missing method Obj goroutine 1 [running]: sigs.k8s.io/controller-tools/pkg/crd.localNamedToSchema(0xc000fd3aa0, 0xc0005f26e0)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:299 +0x3eb sigs.k8s.io/controller-tools/pkg/crd.typeToSchema(0xc000fd3aa0, {0xec6900, 0xc0005f26e0})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:220 +0xd9 sigs.k8s.io/controller-tools/pkg/crd.structToSchema(0xc000a5d568, 0xc000714120)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:477 +0x872 sigs.k8s.io/controller-tools/pkg/crd.typeToSchema(0xc000a5d568, {0xec68d0, 0xc000714120})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:230 +0x93 sigs.k8s.io/controller-tools/pkg/crd.infoToSchema(0xc000a5d568)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:139 +0x165 sigs.k8s.io/controller-tools/pkg/crd.(*Parser).NeedSchemaFor(0xc000[55](https://github.com/nginx/nginx-gateway-fabric/actions/runs/12660268000/job/35281123021?pr=2962#step:8:56)e0c0, {0xc0004070a0, {0xc000410810, 0x14}})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/parser.go:193 +0x290 sigs.k8s.io/controller-tools/pkg/crd.(*schemaContext).requestSchema(0xc00030cf30?, {0x0?, 0xd73825?}, {0xc000410810?, 0x0?})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:108 +0xdb sigs.k8s.io/controller-tools/pkg/crd.localNamedToSchema(0xc000a5d9a0, 0xc000706320)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:305 +0x4ae sigs.k8s.io/controller-tools/pkg/crd.typeToSchema(0xc000a5d9a0, {0xec6900, 0xc000706320})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:220 +0xd9 sigs.k8s.io/controller-tools/pkg/crd.arrayToSchema(0xc000fd3a10, 0xc0007112c0)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:343 +0x10a sigs.k8s.io/controller-tools/pkg/crd.typeToSchema(0xc000fd3a10, {0xec6960, 0xc0007112c0})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:224 +0x51 sigs.k8s.io/controller-tools/pkg/crd.structToSchema(0xc000a5de[58](https://github.com/nginx/nginx-gateway-fabric/actions/runs/12660268000/job/35281123021?pr=2962#step:8:59), 0xc000714480)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:477 +0x872 sigs.k8s.io/controller-tools/pkg/crd.typeToSchema(0xc000a5de58, {0xec68d0, 0xc000714480})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:230 +0x93 sigs.k8s.io/controller-tools/pkg/crd.infoToSchema(0xc000a5de58)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:139 +0x165 sigs.k8s.io/controller-tools/pkg/crd.(*Parser).NeedSchemaFor(0xc00055e0c0, {0xc0004070a0, {0xc0003[60](https://github.com/nginx/nginx-gateway-fabric/actions/runs/12660268000/job/35281123021?pr=2962#step:8:61)8f0, 0xc}})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/parser.go:193 +0x290 sigs.k8s.io/controller-tools/pkg/crd.(*schemaContext).requestSchema(0xc000fd3950?, {0xc00030cf30?, 0xd73825?}, {0xc0003608f0?, 0xc?})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:108 +0xdb sigs.k8s.io/controller-tools/pkg/crd.namedToSchema(0xc000fd3950, 0xc000012858)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:322 +0x234 sigs.k8s.io/controller-tools/pkg/crd.typeToSchema(0xc000fd3950, {0xec6930, 0xc000012858}) /home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:222 +0xf6 sigs.k8s.io/controller-tools/pkg/crd.structToSchema(0xc000a5e650, 0xc000012870)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:477 +0x872 sigs.k8s.io/controller-tools/pkg/crd.typeToSchema(0xc000a5e650, {0xec68d0, 0xc000012870})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:230 +0x[93](https://github.com/nginx/nginx-gateway-fabric/actions/runs/12660268000/job/35281123021?pr=2962#step:8:94) sigs.k8s.io/controller-tools/pkg/crd.infoToSchema(0xc000a5e650)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/schema.go:139 +0x165 sigs.k8s.io/controller-tools/pkg/crd.(*Parser).NeedSchemaFor(0xc00055e0c0, {0xc000407080, {0xc0004f2018, 0x14}})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/parser.go:193 +0x290 sigs.k8s.io/controller-tools/pkg/crd.(*Parser).NeedFlattenedSchemaFor(0xc00055e0c0, {0xc000407080, {0xc0004f2018, 0x14}})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/parser.go:205 +0xcd sigs.k8s.io/controller-tools/pkg/crd.(*Parser).NeedCRDFor(0xc00055e0c0, {{0xc00003e3ce, 0x11}, {0xc0004f2018, 0x14}}, 0x0)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/spec.go:93 +0x57a sigs.k8s.io/controller-tools/pkg/crd.Generator.Generate({0x0, 0x0, 0x0, {0x0, 0x0, 0x0}, 0x0, {0x0, 0x0}, {0x0, ...}, ...}, ...)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/crd/gen.go:182 +0x566 sigs.k8s.io/controller-tools/pkg/genall.(*Runtime).Run(0xc0001823f0)	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/pkg/genall/genall.go:272 +0x234 main.main.func1(0xc0001f4200?, {0xc00024e280?, 0x4?, 0xd7193d?})	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/cmd/controller-gen/main.go:176 +0x6a github.com/spf13/cobra.(*Command).execute(0xc000204c08, {0xc000036060, 0x4, 0x4})	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:[98](https://github.com/nginx/nginx-gateway-fabric/actions/runs/12660268000/job/35281123021?pr=2962#step:8:99)5 +0xaaa github.com/spf13/cobra.(*Command).ExecuteC(0xc000204c08)	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1117 +0x3ff github.com/spf13/cobra.(*Command).Execute(...)	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1041 main.main()	/home/runner/go/pkg/mod/sigs.k8s.io/controller-tools@v0.17.0/cmd/controller-gen/main.go:200 +0x2f6 exit status 2 

Link to failed workflow: https://github.com/nginx/nginx-gateway-fabric/actions/runs/12660268000/job/35281123021?pr=2962

We are running the following command:

go run sigs.k8s.io/controller-tools/cmd/controller-gen@v0.17.0 crd object paths=./apis/... output:crd:artifacts:config=config/crd/bases 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions