Skip to content

Commit 0722d7c

Browse files
authored
Merge pull request #2762 from Nordix/lentzi90/codegen-release-0.12
🌱 Refactor generate-codegen
2 parents 0556957 + ee66016 commit 0722d7c

File tree

5 files changed

+103
-91
lines changed

5 files changed

+103
-91
lines changed

Makefile

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint
6969
GOTESTSUM := $(TOOLS_BIN_DIR)/gotestsum
7070
KUSTOMIZE := $(TOOLS_BIN_DIR)/kustomize
7171
MOCKGEN := $(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
7277
RELEASE_NOTES := $(TOOLS_BIN_DIR)/release-notes
7378
SETUP_ENVTEST := $(TOOLS_BIN_DIR)/setup-envtest
7479
GEN_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
311374
generate-conversion-gen: $(CONVERSION_GEN)

hack/tools/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,26 @@ CONVERSION_GEN := $(BIN_DIR)/conversion-gen
7171
$(CONVERSION_GEN): go.mod go.sum | $(BIN_DIR)
7272
go build -tags=tools -o $@ k8s.io/code-generator/cmd/conversion-gen
7373

74+
OPENAPI_GEN := $(BIN_DIR)/openapi-gen
75+
$(OPENAPI_GEN): go.mod go.sum | $(BIN_DIR)
76+
go build -tags=tools -o $@ k8s.io/kube-openapi/cmd/openapi-gen
77+
78+
APPLYCONFIGURATION_GEN := $(BIN_DIR)/applyconfiguration-gen
79+
$(APPLYCONFIGURATION_GEN): go.mod go.sum | $(BIN_DIR)
80+
go build -tags=tools -o $@ k8s.io/code-generator/cmd/applyconfiguration-gen
81+
82+
CLIENT_GEN := $(BIN_DIR)/client-gen
83+
$(CLIENT_GEN): go.mod go.sum | $(BIN_DIR)
84+
go build -tags=tools -o $@ k8s.io/code-generator/cmd/client-gen
85+
86+
LISTER_GEN := $(BIN_DIR)/lister-gen
87+
$(LISTER_GEN): go.mod go.sum | $(BIN_DIR)
88+
go build -tags=tools -o $@ k8s.io/code-generator/cmd/lister-gen
89+
90+
INFORMER_GEN := $(BIN_DIR)/informer-gen
91+
$(INFORMER_GEN): go.mod go.sum | $(BIN_DIR)
92+
go build -tags=tools -o $@ k8s.io/code-generator/cmd/informer-gen
93+
7494
ENVSUBST := $(BIN_DIR)/envsubst
7595
$(ENVSUBST): go.mod go.sum | $(BIN_DIR) # Build envsubst from tools folder.
7696
go build -tags=tools -o $@ github.com/a8m/envsubst/cmd/envsubst

hack/tools/go.mod

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require (
1313
sigs.k8s.io/cluster-api/hack/tools v0.0.0-20221129083400-679ae3e9e6b6
1414
sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20230926180527-c93e2abcb28e
1515
sigs.k8s.io/controller-tools v0.16.5
16-
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1
16+
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0
1717
)
1818

1919
require (
@@ -51,6 +51,7 @@ require (
5151
github.com/google/go-cmp v0.7.0 // indirect
5252
github.com/google/gofuzz v1.2.0 // indirect
5353
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
54+
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
5455
github.com/google/uuid v1.6.0 // indirect
5556
github.com/gophercloud/gophercloud/v2 v2.8.0 // indirect
5657
github.com/gophercloud/utils/v2 v2.0.0-20241209100706-e3a3b7c07d26 // indirect
@@ -132,16 +133,16 @@ require (
132133
k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7 // indirect
133134
k8s.io/klog v0.2.0 // indirect
134135
k8s.io/klog/v2 v2.130.1 // indirect
135-
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect
136+
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
136137
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
137138
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect
138139
sigs.k8s.io/cluster-api v1.9.11 // indirect
139140
sigs.k8s.io/controller-runtime v0.19.7 // indirect
140141
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
141142
sigs.k8s.io/kubebuilder/docs/book/utils v0.0.0-20211028165026-57688c578b5d // indirect
142-
sigs.k8s.io/kustomize/api v0.20.1 // indirect
143-
sigs.k8s.io/kustomize/cmd/config v0.20.1 // indirect
144-
sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect
143+
sigs.k8s.io/kustomize/api v0.18.0 // indirect
144+
sigs.k8s.io/kustomize/cmd/config v0.15.0 // indirect
145+
sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect
145146
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
146147
sigs.k8s.io/yaml v1.6.0 // indirect
147148
)

hack/tools/go.sum

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
129129
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
130130
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8=
131131
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
132+
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
133+
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
132134
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
133135
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
134136
github.com/gophercloud/gophercloud/v2 v2.8.0 h1:of2+8tT6+FbEYHfYC8GBu8TXJNsXYSNm9KuvpX7Neqo=
@@ -469,8 +471,8 @@ k8s.io/klog v0.2.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
469471
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
470472
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
471473
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
472-
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg=
473-
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas=
474+
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
475+
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
474476
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
475477
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
476478
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
@@ -493,14 +495,14 @@ sigs.k8s.io/kind v0.25.0 h1:ugUvgesHKKA0yKmD6QtYTiEev+kPUpGxdTPbMGf8VTU=
493495
sigs.k8s.io/kind v0.25.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw=
494496
sigs.k8s.io/kubebuilder/docs/book/utils v0.0.0-20211028165026-57688c578b5d h1:KLiQzLW3RZJR19+j4pw2h5iioyAyqCkDBEAFdnGa3N8=
495497
sigs.k8s.io/kubebuilder/docs/book/utils v0.0.0-20211028165026-57688c578b5d/go.mod h1:NRdZafr4zSCseLQggdvIMXa7umxf+Q+PJzrj3wFwiGE=
496-
sigs.k8s.io/kustomize/api v0.20.1 h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I=
497-
sigs.k8s.io/kustomize/api v0.20.1/go.mod h1:t6hUFxO+Ph0VxIk1sKp1WS0dOjbPCtLJ4p8aADLwqjM=
498-
sigs.k8s.io/kustomize/cmd/config v0.20.1 h1:4APUORmZe2BYrsqgGfEKdd/r7gM6i43egLrUzilpiFo=
499-
sigs.k8s.io/kustomize/cmd/config v0.20.1/go.mod h1:R7rQ8kxknVlXWVUIbxWtMgu8DCCNVtl8V0KrmeVd/KE=
500-
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1 h1:sYJsarwy/SDJfjjLMUqwFDGPwzUtMOQ1i1Ed49+XSbw=
501-
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1/go.mod h1:+5/SrBcJ4agx1SJknGuR/c9thwRSKLxnKoI5BzXFaLU=
502-
sigs.k8s.io/kustomize/kyaml v0.20.1 h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A78=
503-
sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po=
498+
sigs.k8s.io/kustomize/api v0.18.0 h1:hTzp67k+3NEVInwz5BHyzc9rGxIauoXferXyjv5lWPo=
499+
sigs.k8s.io/kustomize/api v0.18.0/go.mod h1:f8isXnX+8b+SGLHQ6yO4JG1rdkZlvhaCf/uZbLVMb0U=
500+
sigs.k8s.io/kustomize/cmd/config v0.15.0 h1:WkdY8V2+8J+W00YbImXa2ke9oegfrHH79e+kywW7EdU=
501+
sigs.k8s.io/kustomize/cmd/config v0.15.0/go.mod h1:Jq57b0nPaoYUlOqg//0JtAh6iibboqMcfbtCYoWPM00=
502+
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0 h1:o1mtt6vpxsxDYaZKrw3BnEtc+pAjLz7UffnIvHNbvW0=
503+
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0/go.mod h1:AeFCmgCrXzmvjWWaeZCyBp6XzG1Y0w1svYus8GhJEOE=
504+
sigs.k8s.io/kustomize/kyaml v0.18.1 h1:WvBo56Wzw3fjS+7vBjN6TeivvpbW9GmRaWZ9CIVmt4E=
505+
sigs.k8s.io/kustomize/kyaml v0.18.1/go.mod h1:C3L2BFVU1jgcddNBE1TxuVLgS46TjObMwW5FT9FcjYo=
504506
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
505507
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
506508
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=

hack/update-codegen.sh

Lines changed: 0 additions & 74 deletions
This file was deleted.

0 commit comments

Comments
 (0)