@@ -68,6 +68,11 @@ GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint
6868GOTESTSUM := $(TOOLS_BIN_DIR ) /gotestsum
6969KUSTOMIZE := $(TOOLS_BIN_DIR ) /kustomize
7070MOCKGEN := $(TOOLS_BIN_DIR ) /mockgen
71+ OPENAPI_GEN := $(TOOLS_BIN_DIR ) /openapi-gen
72+ APPLYCONFIGURATION_GEN := $(TOOLS_BIN_DIR ) /applyconfiguration-gen
73+ CLIENT_GEN := $(TOOLS_BIN_DIR ) /client-gen
74+ LISTER_GEN := $(TOOLS_BIN_DIR ) /lister-gen
75+ INFORMER_GEN := $(TOOLS_BIN_DIR ) /informer-gen
7176RELEASE_NOTES := $(TOOLS_BIN_DIR ) /release-notes
7277SETUP_ENVTEST := $(TOOLS_BIN_DIR ) /setup-envtest
7378GEN_CRD_API_REFERENCE_DOCS := $(TOOLS_BIN_DIR ) /gen-crd-api-reference-docs
@@ -305,8 +310,64 @@ generate-controller-gen: $(CONTROLLER_GEN)
305310 object:headerFile=./hack/boilerplate/boilerplate.generatego.txt
306311
307312.PHONY : generate-codegen
308- generate-codegen : generate-controller-gen
309- ./hack/update-codegen.sh
313+ generate-codegen : generate-controller-gen $(OPENAPI_GEN ) $(APPLYCONFIGURATION_GEN ) $(CLIENT_GEN ) $(LISTER_GEN ) $(INFORMER_GEN )
314+ @echo " ** Generating OpenAPI definitions **"
315+ # The package list includes:
316+ # - CAPO's own API packages (v1alpha1, v1beta1) that have // +k8s:openapi-gen= markers
317+ # - Dependency packages from CAPI and k8s.io that are referenced by CAPO's APIs
318+ # - Base k8s.io/apimachinery packages
319+ $(OPENAPI_GEN ) \
320+ --go-header-file=./hack/boilerplate.go.txt \
321+ --output-file=zz_generated.openapi.go \
322+ --output-dir=./cmd/models-schema \
323+ --output-pkg=main \
324+ --report-filename=./api_violations.report \
325+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
326+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1 \
327+ sigs.k8s.io/cluster-api/api/core/v1beta2 \
328+ sigs.k8s.io/cluster-api/api/ipam/v1beta2 \
329+ sigs.k8s.io/cluster-api/api/core/v1beta1 \
330+ sigs.k8s.io/cluster-api/api/ipam/v1beta1 \
331+ k8s.io/api/core/v1 \
332+ k8s.io/apimachinery/pkg/apis/meta/v1 \
333+ k8s.io/apimachinery/pkg/runtime \
334+ k8s.io/apimachinery/pkg/version
335+ @echo " ** Generating openapi.json **"
336+ go run ./cmd/models-schema | jq > ./openapi.json
337+ @echo " ** Generating applyconfiguration code **"
338+ $(APPLYCONFIGURATION_GEN ) \
339+ --go-header-file=./hack/boilerplate.go.txt \
340+ --output-dir=./pkg/generated/applyconfiguration \
341+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
342+ --openapi-schema=./openapi.json \
343+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
344+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
345+ @echo " ** Generating clientset code **"
346+ $(CLIENT_GEN ) \
347+ --go-header-file=./hack/boilerplate.go.txt \
348+ --output-dir=./pkg/generated/clientset \
349+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset \
350+ --clientset-name=clientset \
351+ --input-base=sigs.k8s.io/cluster-api-provider-openstack \
352+ --apply-configuration-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
353+ --input=api/v1alpha1 \
354+ --input=api/v1beta1
355+ @echo " ** Generating lister code **"
356+ $(LISTER_GEN ) \
357+ --go-header-file=./hack/boilerplate.go.txt \
358+ --output-dir=./pkg/generated/listers \
359+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
360+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
361+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
362+ @echo " ** Generating informer code **"
363+ $(INFORMER_GEN ) \
364+ --go-header-file=./hack/boilerplate.go.txt \
365+ --output-dir=./pkg/generated/informers \
366+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/informers \
367+ --versioned-clientset-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset/clientset \
368+ --listers-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
369+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
370+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
310371
311372.PHONY : generate-manifests
312373generate-manifests : $(CONTROLLER_GEN ) # # Generate manifests e.g. CRD, RBAC etc.
0 commit comments