@@ -27,7 +27,7 @@ unexport GOPATH
2727TRACE ?= 0
2828
2929# Go
30- GO_VERSION ?= 1.23.8
30+ GO_VERSION ?= 1.24.9
3131
3232# Directories.
3333ARTIFACTS ?= $(REPO_ROOT ) /_artifacts
@@ -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
@@ -317,8 +322,66 @@ generate-controller-gen: $(CONTROLLER_GEN)
317322 object:headerFile=./hack/boilerplate/boilerplate.generatego.txt
318323
319324.PHONY : generate-codegen
320- generate-codegen : generate-controller-gen
321- ./hack/update-codegen.sh
325+ generate-codegen : generate-controller-gen $(OPENAPI_GEN ) $(APPLYCONFIGURATION_GEN ) $(CLIENT_GEN ) $(LISTER_GEN ) $(INFORMER_GEN )
326+ @echo " ** Generating OpenAPI definitions **"
327+ # The package list includes:
328+ # - CAPO's own API packages (v1alpha1, v1alpha7, v1beta1) that have // +k8s:openapi-gen= markers
329+ # - Dependency packages from CAPI and k8s.io that are referenced by CAPO's APIs
330+ # - Base k8s.io/apimachinery packages
331+ $(OPENAPI_GEN ) \
332+ --go-header-file=./hack/boilerplate.go.txt \
333+ --output-file=zz_generated.openapi.go \
334+ --output-dir=./cmd/models-schema \
335+ --output-pkg=main \
336+ --report-filename=./api_violations.report \
337+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
338+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
339+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1 \
340+ sigs.k8s.io/cluster-api/api/v1beta1 \
341+ k8s.io/api/core/v1 \
342+ k8s.io/apimachinery/pkg/apis/meta/v1 \
343+ k8s.io/apimachinery/pkg/runtime \
344+ k8s.io/apimachinery/pkg/version
345+ @echo " ** Generating openapi.json **"
346+ go run ./cmd/models-schema | jq > ./openapi.json
347+ @echo " ** Generating applyconfiguration code **"
348+ $(APPLYCONFIGURATION_GEN ) \
349+ --go-header-file=./hack/boilerplate.go.txt \
350+ --output-dir=./pkg/generated/applyconfiguration \
351+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
352+ --openapi-schema=./openapi.json \
353+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
354+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
355+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
356+ @echo " ** Generating clientset code **"
357+ $(CLIENT_GEN ) \
358+ --go-header-file=./hack/boilerplate.go.txt \
359+ --output-dir=./pkg/generated/clientset \
360+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset \
361+ --clientset-name=clientset \
362+ --input-base=sigs.k8s.io/cluster-api-provider-openstack \
363+ --apply-configuration-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
364+ --input=api/v1alpha1 \
365+ --input=api/v1alpha7 \
366+ --input=api/v1beta1
367+ @echo " ** Generating lister code **"
368+ $(LISTER_GEN ) \
369+ --go-header-file=./hack/boilerplate.go.txt \
370+ --output-dir=./pkg/generated/listers \
371+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
372+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
373+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
374+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
375+ @echo " ** Generating informer code **"
376+ $(INFORMER_GEN ) \
377+ --go-header-file=./hack/boilerplate.go.txt \
378+ --output-dir=./pkg/generated/informers \
379+ --output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/informers \
380+ --versioned-clientset-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset/clientset \
381+ --listers-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
382+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
383+ sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
384+ sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
322385
323386.PHONY : generate-conversion-gen
324387generate-conversion-gen : $(CONVERSION_GEN )
@@ -517,6 +580,8 @@ templates/cluster-template-%.yaml: kustomize/v1beta1/% $(KUSTOMIZE) FORCE
517580.PHONY : release-templates
518581release-templates : $(RELEASE_DIR ) templates # # Generate release templates
519582 cp templates/cluster-template* .yaml $(RELEASE_DIR ) /
583+ cp templates/clusterclass* .yaml $(RELEASE_DIR ) /
584+ cp templates/image-template* .yaml $(RELEASE_DIR ) /
520585
521586IMAGE_PATCH_DIR := $(ARTIFACTS ) /image-patch
522587
0 commit comments