Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 65 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@ GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint
GOTESTSUM := $(TOOLS_BIN_DIR)/gotestsum
KUSTOMIZE := $(TOOLS_BIN_DIR)/kustomize
MOCKGEN := $(TOOLS_BIN_DIR)/mockgen
OPENAPI_GEN := $(TOOLS_BIN_DIR)/openapi-gen
APPLYCONFIGURATION_GEN := $(TOOLS_BIN_DIR)/applyconfiguration-gen
CLIENT_GEN := $(TOOLS_BIN_DIR)/client-gen
LISTER_GEN := $(TOOLS_BIN_DIR)/lister-gen
INFORMER_GEN := $(TOOLS_BIN_DIR)/informer-gen
RELEASE_NOTES := $(TOOLS_BIN_DIR)/release-notes
SETUP_ENVTEST := $(TOOLS_BIN_DIR)/setup-envtest
GEN_CRD_API_REFERENCE_DOCS := $(TOOLS_BIN_DIR)/gen-crd-api-reference-docs
Expand Down Expand Up @@ -304,8 +309,66 @@ generate-controller-gen: $(CONTROLLER_GEN)
object:headerFile=./hack/boilerplate/boilerplate.generatego.txt

.PHONY: generate-codegen
generate-codegen: generate-controller-gen
./hack/update-codegen.sh
generate-codegen: generate-controller-gen $(OPENAPI_GEN) $(APPLYCONFIGURATION_GEN) $(CLIENT_GEN) $(LISTER_GEN) $(INFORMER_GEN)
@echo "** Generating OpenAPI definitions **"
# The package list includes:
# - CAPO's own API packages (v1alpha1, v1alpha7, v1beta1) that have // +k8s:openapi-gen= markers
# - Dependency packages from CAPI and k8s.io that are referenced by CAPO's APIs
# - Base k8s.io/apimachinery packages
$(OPENAPI_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-file=zz_generated.openapi.go \
--output-dir=./cmd/models-schema \
--output-pkg=main \
--report-filename=./api_violations.report \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1 \
sigs.k8s.io/cluster-api/api/v1beta1 \
k8s.io/api/core/v1 \
k8s.io/apimachinery/pkg/apis/meta/v1 \
k8s.io/apimachinery/pkg/runtime \
k8s.io/apimachinery/pkg/version
@echo "** Generating openapi.json **"
go run ./cmd/models-schema | jq > ./openapi.json
@echo "** Generating applyconfiguration code **"
$(APPLYCONFIGURATION_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-dir=./pkg/generated/applyconfiguration \
--output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
--openapi-schema=./openapi.json \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
@echo "** Generating clientset code **"
$(CLIENT_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-dir=./pkg/generated/clientset \
--output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset \
--clientset-name=clientset \
--input-base=sigs.k8s.io/cluster-api-provider-openstack \
--apply-configuration-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/applyconfiguration \
--input=api/v1alpha1 \
--input=api/v1alpha7 \
--input=api/v1beta1
@echo "** Generating lister code **"
$(LISTER_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-dir=./pkg/generated/listers \
--output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1
@echo "** Generating informer code **"
$(INFORMER_GEN) \
--go-header-file=./hack/boilerplate.go.txt \
--output-dir=./pkg/generated/informers \
--output-pkg=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/informers \
--versioned-clientset-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/clientset/clientset \
--listers-package=sigs.k8s.io/cluster-api-provider-openstack/pkg/generated/listers \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha1 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha7 \
sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1

.PHONY: generate-conversion-gen
generate-conversion-gen: $(CONVERSION_GEN)
Expand Down
20 changes: 20 additions & 0 deletions hack/tools/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,26 @@ CONVERSION_GEN := $(BIN_DIR)/conversion-gen
$(CONVERSION_GEN): go.mod go.sum | $(BIN_DIR)
go build -tags=tools -o $@ k8s.io/code-generator/cmd/conversion-gen

OPENAPI_GEN := $(BIN_DIR)/openapi-gen
$(OPENAPI_GEN): go.mod go.sum | $(BIN_DIR)
go build -tags=tools -o $@ k8s.io/kube-openapi/cmd/openapi-gen

APPLYCONFIGURATION_GEN := $(BIN_DIR)/applyconfiguration-gen
$(APPLYCONFIGURATION_GEN): go.mod go.sum | $(BIN_DIR)
go build -tags=tools -o $@ k8s.io/code-generator/cmd/applyconfiguration-gen

CLIENT_GEN := $(BIN_DIR)/client-gen
$(CLIENT_GEN): go.mod go.sum | $(BIN_DIR)
go build -tags=tools -o $@ k8s.io/code-generator/cmd/client-gen

LISTER_GEN := $(BIN_DIR)/lister-gen
$(LISTER_GEN): go.mod go.sum | $(BIN_DIR)
go build -tags=tools -o $@ k8s.io/code-generator/cmd/lister-gen

INFORMER_GEN := $(BIN_DIR)/informer-gen
$(INFORMER_GEN): go.mod go.sum | $(BIN_DIR)
go build -tags=tools -o $@ k8s.io/code-generator/cmd/informer-gen

ENVSUBST := $(BIN_DIR)/envsubst
$(ENVSUBST): go.mod go.sum | $(BIN_DIR) # Build envsubst from tools folder.
go build -tags=tools -o $@ github.com/a8m/envsubst/cmd/envsubst
Expand Down
11 changes: 6 additions & 5 deletions hack/tools/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ require (
sigs.k8s.io/cluster-api/hack/tools v0.0.0-20221129083400-679ae3e9e6b6
sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20230926180527-c93e2abcb28e
sigs.k8s.io/controller-tools v0.16.5
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0
)

require (
Expand Down Expand Up @@ -51,6 +51,7 @@ require (
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gophercloud/gophercloud/v2 v2.8.0 // indirect
github.com/gophercloud/utils/v2 v2.0.0-20241209100706-e3a3b7c07d26 // indirect
Expand Down Expand Up @@ -132,16 +133,16 @@ require (
k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7 // indirect
k8s.io/klog v0.2.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect
sigs.k8s.io/cluster-api v1.9.11 // indirect
sigs.k8s.io/controller-runtime v0.19.7 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/kubebuilder/docs/book/utils v0.0.0-20211028165026-57688c578b5d // indirect
sigs.k8s.io/kustomize/api v0.20.1 // indirect
sigs.k8s.io/kustomize/cmd/config v0.20.1 // indirect
sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect
sigs.k8s.io/kustomize/api v0.18.0 // indirect
sigs.k8s.io/kustomize/cmd/config v0.15.0 // indirect
sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)
Expand Down
22 changes: 12 additions & 10 deletions hack/tools/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8=
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gophercloud/gophercloud/v2 v2.8.0 h1:of2+8tT6+FbEYHfYC8GBu8TXJNsXYSNm9KuvpX7Neqo=
Expand Down Expand Up @@ -469,8 +471,8 @@ k8s.io/klog v0.2.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg=
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas=
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
Expand All @@ -493,14 +495,14 @@ sigs.k8s.io/kind v0.25.0 h1:ugUvgesHKKA0yKmD6QtYTiEev+kPUpGxdTPbMGf8VTU=
sigs.k8s.io/kind v0.25.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw=
sigs.k8s.io/kubebuilder/docs/book/utils v0.0.0-20211028165026-57688c578b5d h1:KLiQzLW3RZJR19+j4pw2h5iioyAyqCkDBEAFdnGa3N8=
sigs.k8s.io/kubebuilder/docs/book/utils v0.0.0-20211028165026-57688c578b5d/go.mod h1:NRdZafr4zSCseLQggdvIMXa7umxf+Q+PJzrj3wFwiGE=
sigs.k8s.io/kustomize/api v0.20.1 h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I=
sigs.k8s.io/kustomize/api v0.20.1/go.mod h1:t6hUFxO+Ph0VxIk1sKp1WS0dOjbPCtLJ4p8aADLwqjM=
sigs.k8s.io/kustomize/cmd/config v0.20.1 h1:4APUORmZe2BYrsqgGfEKdd/r7gM6i43egLrUzilpiFo=
sigs.k8s.io/kustomize/cmd/config v0.20.1/go.mod h1:R7rQ8kxknVlXWVUIbxWtMgu8DCCNVtl8V0KrmeVd/KE=
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1 h1:sYJsarwy/SDJfjjLMUqwFDGPwzUtMOQ1i1Ed49+XSbw=
sigs.k8s.io/kustomize/kustomize/v5 v5.7.1/go.mod h1:+5/SrBcJ4agx1SJknGuR/c9thwRSKLxnKoI5BzXFaLU=
sigs.k8s.io/kustomize/kyaml v0.20.1 h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A78=
sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po=
sigs.k8s.io/kustomize/api v0.18.0 h1:hTzp67k+3NEVInwz5BHyzc9rGxIauoXferXyjv5lWPo=
sigs.k8s.io/kustomize/api v0.18.0/go.mod h1:f8isXnX+8b+SGLHQ6yO4JG1rdkZlvhaCf/uZbLVMb0U=
sigs.k8s.io/kustomize/cmd/config v0.15.0 h1:WkdY8V2+8J+W00YbImXa2ke9oegfrHH79e+kywW7EdU=
sigs.k8s.io/kustomize/cmd/config v0.15.0/go.mod h1:Jq57b0nPaoYUlOqg//0JtAh6iibboqMcfbtCYoWPM00=
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0 h1:o1mtt6vpxsxDYaZKrw3BnEtc+pAjLz7UffnIvHNbvW0=
sigs.k8s.io/kustomize/kustomize/v5 v5.5.0/go.mod h1:AeFCmgCrXzmvjWWaeZCyBp6XzG1Y0w1svYus8GhJEOE=
sigs.k8s.io/kustomize/kyaml v0.18.1 h1:WvBo56Wzw3fjS+7vBjN6TeivvpbW9GmRaWZ9CIVmt4E=
sigs.k8s.io/kustomize/kyaml v0.18.1/go.mod h1:C3L2BFVU1jgcddNBE1TxuVLgS46TjObMwW5FT9FcjYo=
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
Expand Down
74 changes: 0 additions & 74 deletions hack/update-codegen.sh

This file was deleted.