Kubernetes code generator code for custom resources apis (client, lister and informer) e crd manifests.
These code-generator tools can be used
- in the context of CustomResourceDefinition to build native, versioned clients, informers and other helpers
- in the context of User-provider API Servers to build conversions between internal and versioned types, defaulters, protobuf codecs, internal and versioned clients and informers.
- to generate CRD manifest YAMLs to register your Custom Resources on the k8s cluster.
This project makes use of the generators in k8s.io/code-generator and sigs to generate a typed client, informers, listers and deep-copy functions.
And will create theses files for the api:
- pkg/apis/samplecontroller/v1/zz_generated.deepcopy.go
- pkg/generated/
Docker image | |
---|---|
Kubernetes v1.22 | josericardomcastro/kube-code-generator-tools:0.22.1 |
Kubernetes v1.20 | josericardomcastro/kube-code-generator-tools:0.20.15 |
Check it out the project example that generate code apis and CRD manifests for the Foo api resource.
PROJECT_PACKAGE=github.com/example/project
docker run -it --rm \
-v ${PWD}:/go/src/${PROJECT_PACKAGE} \
-e PROJECT_PACKAGE=${PROJECT_PACKAGE} \
-e CLIENT_GENERATOR_OUT=${PROJECT_PACKAGE}/pkg/generated \
-e APIS_PKG=${PROJECT_PACKAGE}/pkg/apis \
-e GROUPS_VERSION="sample:v1" \
-e GENERATION_TARGETS="all" \
josericardomcastro/kube-code-generator-tools:0.22.1
SOURCE_PROJECT=/go/src/github.com/example/project
docker run -it --rm \
-v ${PWD}:${SOURCE_PROJECT} \
-e GO_PROJECT_ROOT=${SOURCE_PROJECT} \
-e CRD_TYPES_PATH=${SOURCE_PROJECT}/pkg/apis \
-e CRD_OUT_PATH=${SOURCE_PROJECT}/manifests \
josericardomcastro/kube-code-generator-tools:0.22.1 ./generate-crd.sh
This project is based on the other projects.