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

In the latest version of kubebuilder. Something goes wrong with jobTemplate #3313

Closed
Pluviophile225 opened this issue Mar 27, 2023 · 4 comments
Labels
kind/bug Categorizes issue or PR as related to a bug.

Comments

@Pluviophile225
Copy link

What broke? What's expected?

When I follow the instruction of how to start and change the cornjob_types.go, then it goes wrong with make install like this.

[root@VM-4-8-centos kubebuilder]# make install
test -s /root/go/src/kubebuilder/bin/controller-gen && /root/go/src/kubebuilder/bin/controller-gen --version | grep -q v0.11.1 || \
GOBIN=/root/go/src/kubebuilder/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.11.1
/root/go/src/kubebuilder/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
/root/go/src/kubebuilder/bin/kustomize build config/crd | kubectl apply -f -
The CustomResourceDefinition "cronjobs.batch.tutorial.kubebuilder.io" is invalid: 
* spec.validation.openAPIV3Schema.properties[spec].properties[jobTemplate].properties[spec].properties[template].properties[spec].properties[volumes].items.properties[ephemeral].properties[volumeClaimTemplate].properties[spec].properties[resources].properties[claims].items.x-kubernetes-map-type: Invalid value: "null": must be atomic as item of a list with x-kubernetes-list-type=set
* spec.validation.openAPIV3Schema.properties[spec].properties[jobTemplate].properties[spec].properties[template].properties[spec].properties[initContainers].items.properties[resources].properties[claims].items.x-kubernetes-map-type: Invalid value: "null": must be atomic as item of a list with x-kubernetes-list-type=set
* spec.validation.openAPIV3Schema.properties[spec].properties[jobTemplate].properties[spec].properties[template].properties[spec].properties[containers].items.properties[resources].properties[claims].items.x-kubernetes-map-type: Invalid value: "null": must be atomic as item of a list with x-kubernetes-list-type=set
* spec.validation.openAPIV3Schema.properties[spec].properties[jobTemplate].properties[spec].properties[template].properties[spec].properties[ephemeralContainers].items.properties[resources].properties[claims].items.x-kubernetes-map-type: Invalid value: "null": must be atomic as item of a list with x-kubernetes-list-type=set
make: *** [install] Error 1

However, if I change the version, it goes right.

Reproducing this issue

Use the latest version to run the guidline book.

KubeBuilder (CLI) Version

v3.9.1

PROJECT version

No response

Plugin versions

No response

Other versions

No response

Extra Labels

No response

@Pluviophile225 Pluviophile225 added the kind/bug Categorizes issue or PR as related to a bug. label Mar 27, 2023
@xiao-jay
Copy link
Contributor

xiao-jay commented Mar 27, 2023

please see this issue #3303 (comment)

@xiao-jay
Copy link
Contributor

@camilamacedo86 please release new version kubebuilder.I have test newest have no this error
test in local

➜  kubebuilder git:(master) ✗ kubebuilder version                 
Version: main.version{KubeBuilderVersion:"", KubernetesVendor:"unknown", GitCommit:"1ab1f162b82496bff7ccb10feff0859afdb324c3", BuildDate:"2023-03-27T15:26:49Z", GoOs:"darwin", GoArch:"arm64"}
``` ➜ kubebuilder git:(master) ✗ mkdir project ➜ kubebuilder git:(master) ✗ cd project ➜ project git:(master) ✗ kubebuilder init --domain tutorial.kubebuilder.io --repo tutorial.kubebuilder.io/project Writing kustomize manifests for you to edit... Writing scaffold for you to edit... Get controller runtime: $ go get sigs.k8s.io/controller-runtime@v0.14.4 Update dependencies: $ go mod tidy Next: define a resource with: $ kubebuilder create api ➜ project git:(master) ✗ kubebuilder create api --group batch --version v1 --kind CronJob Create Resource [y/n] y Create Controller [y/n] y Writing kustomize manifests for you to edit... Writing scaffold for you to edit... api/v1/cronjob_types.go api/v1/groupversion_info.go internal/controller/suite_test.go internal/controller/cronjob_controller.go Update dependencies: $ go mod tidy Running make: $ make generate mkdir -p /Users/jie/Desktop/golang/kubebuilder/project/bin test -s /Users/jie/Desktop/golang/kubebuilder/project/bin/controller-gen && /Users/jie/Desktop/golang/kubebuilder/project/bin/controller-gen --version | grep -q v0.11.3 || \ GOBIN=/Users/jie/Desktop/golang/kubebuilder/project/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.11.3 /Users/jie/Desktop/golang/kubebuilder/project/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..." Next: implement your new API and generate the manifests (e.g. CRDs,CRs) with: $ make manifests ➜ project git:(master) ✗ make manifests /Users/jie/Desktop/golang/kubebuilder/project/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases ➜ project git:(master) ✗ make install test -s /Users/jie/Desktop/golang/kubebuilder/project/bin/controller-gen && /Users/jie/Desktop/golang/kubebuilder/project/bin/controller-gen --version | grep -q v0.11.3 || \ GOBIN=/Users/jie/Desktop/golang/kubebuilder/project/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.11.3 /Users/jie/Desktop/golang/kubebuilder/project/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases /Users/jie/Desktop/golang/kubebuilder/project/bin/kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/cronjobs.batch.tutorial.kubebuilder.io configured ```

@varshaprasad96
Copy link
Member

varshaprasad96 commented Apr 6, 2023

As @xiao-jay mentioned, this was a regression from upstream (ref: kubernetes-sigs/controller-tools#754) happening because the field type was modified (kubernetes/kubernetes#114617). We would have to look into our project scaffolding and bump the dependency when templates are generated.

@camilamacedo86
Copy link
Member

camilamacedo86 commented Apr 22, 2023

Closing this one since it is a bug for controller-gen (tools), which is solved already as described in the above comment #3313 (comment). Kubebuilder default is scaffolded will be bumped to use the latest/next future release of controller tools when available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

No branches or pull requests

4 participants