@@ -69,6 +69,11 @@ GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint
6969GOTESTSUM := $(TOOLS_BIN_DIR ) /gotestsum
7070KUSTOMIZE := $(TOOLS_BIN_DIR ) /kustomize
7171MOCKGEN := $(TOOLS_BIN_DIR ) /mockgen
72+ OPENAPI_GEN := $(TOOLS_BIN_DIR ) /openapi-gen
73+ APPLYCONFIGURATION_GEN := $(TOOLS_BIN_DIR ) /applyconfiguration-gen
74+ CLIENT_GEN := $(TOOLS_BIN_DIR ) /client-gen
75+ LISTER_GEN := $(TOOLS_BIN_DIR ) /lister-gen
76+ INFORMER_GEN := $(TOOLS_BIN_DIR ) /informer-gen
7277RELEASE_NOTES := $(TOOLS_BIN_DIR ) /release-notes
7378SETUP_ENVTEST := $(TOOLS_BIN_DIR ) /setup-envtest
7479GEN_CRD_API_REFERENCE_DOCS := $(TOOLS_BIN_DIR ) /gen-crd-api-reference-docs
@@ -304,8 +309,66 @@ generate-controller-gen: $(CONTROLLER_GEN)
304309 object:headerFile=./hack/boilerplate/boilerplate.generatego.txt
305310
306311.PHONY : generate-codegen
307- generate-codegen : generate-controller-gen
308- ./hack/update-codegen.sh
312+ generate-codegen : generate-controller-gen $(OPENAPI_GEN ) $(APPLYCONFIGURATION_GEN ) $(CLIENT_GEN ) $(LISTER_GEN ) $(INFORMER_GEN )
313+ @echo " ** Generating OpenAPI definitions **"
314+ # The package list includes:
315+ # - CAPO's own API packages (v1alpha1, v1alpha7, v1beta1) that have // +k8s:openapi-gen= markers
316+ # - Dependency packages from CAPI and k8s.io that are referenced by CAPO's APIs
317+ # - Base k8s.io/apimachinery packages
318+ $(OPENAPI_GEN ) \
319+ --go-header-file=./hack/boilerplate.go.txt \
320+ --output-file=zz_generated.openapi.go \
321+ --output-dir=./cmd/models-schema \
322+ --output-pkg=main \
323+ --report-filename=./api_violations.report \
324+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
325+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
326+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1 \
327+ sigs.k8s.io/cluster-api/api/v1beta1 \
328+ k8s.io/api/core/v1 \
329+ k8s.io/apimachinery/pkg/apis/meta/v1 \
330+ k8s.io/apimachinery/pkg/runtime \
331+ k8s.io/apimachinery/pkg/version
332+ @echo " ** Generating openapi.json **"
333+ go run ./cmd/models-schema | jq > ./openapi.json
334+ @echo " ** Generating applyconfiguration code **"
335+ $(APPLYCONFIGURATION_GEN ) \
336+ --go-header-file=./hack/boilerplate.go.txt \
337+ --output-dir=./pkg/generated/applyconfiguration \
338+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
339+ --openapi-schema=./openapi.json \
340+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
341+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
342+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
343+ @echo " ** Generating clientset code **"
344+ $(CLIENT_GEN ) \
345+ --go-header-file=./hack/boilerplate.go.txt \
346+ --output-dir=./pkg/generated/clientset \
347+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset \
348+ --clientset-name=clientset \
349+ --input-base=sigs.k8s.io/cluster-api-provider-openstack \
350+ --apply-configuration-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
351+ --input=api/v1alpha1 \
352+ --input=api/v1alpha7 \
353+ --input=api/v1beta1
354+ @echo " ** Generating lister code **"
355+ $(LISTER_GEN ) \
356+ --go-header-file=./hack/boilerplate.go.txt \
357+ --output-dir=./pkg/generated/listers \
358+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
359+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
360+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
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/v1alpha7 \
371+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
309372
310373.PHONY : generate-conversion-gen
311374generate-conversion-gen : $(CONVERSION_GEN )
0 commit comments