@@ -58,6 +58,11 @@ CONTROLLER_GEN_VER := v0.14.0
5858CONTROLLER_GEN_BIN := controller-gen
5959CONTROLLER_GEN := $(TOOLS_BIN_DIR ) /$(CONTROLLER_GEN_BIN ) -$(CONTROLLER_GEN_VER )
6060
61+ # Sync
62+ CONVERSION_GEN_VER := v0.29.0
63+ CONVERSION_GEN_BIN := conversion-gen
64+ CONVERSION_GEN := $(TOOLS_BIN_DIR ) /$(CONVERSION_GEN_BIN ) -$(CONVERSION_GEN_VER )
65+
6166# Sync to github.com/drone/envsubst/v2 in https://github.com/kubernetes-sigs/cluster-api/blob/v{VERSION}/go.mod
6267ENVSUBST_VER := v2.0.0-20210730161058-179042472c46
6368ENVSUBST_BIN := envsubst
@@ -154,7 +159,7 @@ test-common:
154159all-bootstrap : manager-bootstrap
155160
156161# Run tests
157- test-bootstrap : envtest generate-bootstrap lint manifests-bootstrap
162+ test-bootstrap : envtest generate-bootstrap generate-bootstrap-conversions lint manifests-bootstrap
158163 KUBEBUILDER_ASSETS=" $( shell $( ENVTEST) use $( ENVTEST_K8S_VERSION) --bin-dir $( TOOLS_BIN_DIR) -p path) " go test $(shell pwd) /bootstrap/... -coverprofile cover.out
159164
160165# Build manager binary
@@ -180,7 +185,7 @@ deploy-bootstrap: manifests-bootstrap
180185
181186# Generate manifests e.g. CRD, RBAC etc.
182187manifests-bootstrap : $(KUSTOMIZE ) $(CONTROLLER_GEN )
183- $(CONTROLLER_GEN ) rbac:roleName=manager-role crd webhook paths= " ./... " output:crd:artifacts:config=bootstrap/config/crd/bases output:rbac:dir=bootstrap/config/rbac
188+ $(CONTROLLER_GEN ) paths=./bootstrap/... rbac:roleName=manager-role crd webhook output:crd:artifacts:config=bootstrap/config/crd/bases output:rbac:dir=bootstrap/config/rbac output:webhook:dir=bootstrap/config/webhook
184189
185190release-bootstrap :$(RELEASE_DIR ) manifests-bootstrap # # Release bootstrap
186191 cd bootstrap/config/manager && $(KUSTOMIZE ) edit set image controller=${BOOTSTRAP_IMG} :${BOOTSTRAP_IMG_TAG}
@@ -190,6 +195,15 @@ release-bootstrap:$(RELEASE_DIR) manifests-bootstrap ## Release bootstrap
190195generate-bootstrap : $(CONTROLLER_GEN )
191196 $(CONTROLLER_GEN ) object:headerFile=" hack/boilerplate.go.txt" paths=" $( shell pwd) /bootstrap/..."
192197
198+ generate-bootstrap-conversions : $(CONVERSION_GEN )
199+ $(CONVERSION_GEN ) \
200+ --input-dirs=./bootstrap/api/v1beta1 \
201+ --extra-peer-dirs=sigs.k8s.io/cluster-api/api/v1beta1 \
202+ --build-tag=ignore_autogenerated_conversions \
203+ --output-file-base=zz_generated.conversion \
204+ --output-base=./ \
205+ --go-header-file=./hack/boilerplate.go.txt
206+
193207# Build the docker image
194208docker-build-bootstrap : manager-bootstrap # # Build bootstrap
195209 DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg TARGETARCH=$(ARCH ) --build-arg package=./bootstrap/main.go --build-arg ldflags=" $( LDFLAGS) " . -t ${BOOTSTRAP_IMG} :${BOOTSTRAP_IMG_TAG}
@@ -201,7 +215,7 @@ docker-push-bootstrap: ## Push bootstrap
201215all-controlplane : manager-controlplane
202216
203217# Run tests
204- test-controlplane : envtest generate-controlplane lint manifests-controlplane
218+ test-controlplane : envtest generate-controlplane generate-controlplane-conversions lint manifests-controlplane
205219 KUBEBUILDER_ASSETS=" $( shell $( ENVTEST) use $( ENVTEST_K8S_VERSION) --bin-dir $( TOOLS_BIN_DIR) -p path) " go test $(shell pwd) /controlplane/... -coverprofile cover.out
206220
207221.PHONY : docker-build-e2e
@@ -244,7 +258,7 @@ deploy-controlplane: manifests-controlplane
244258
245259# Generate manifests e.g. CRD, RBAC etc.
246260manifests-controlplane : $(KUSTOMIZE ) $(CONTROLLER_GEN )
247- $(CONTROLLER_GEN ) rbac:roleName=manager-role webhook crd paths= " ./... " output:crd:artifacts:config=controlplane/config/crd/bases output:rbac:dir=controlplane/config/rbac
261+ $(CONTROLLER_GEN ) paths=./controlplane/... rbac:roleName=manager-role webhook crd output:crd:artifacts:config=controlplane/config/crd/bases output:rbac:dir=controlplane/config/rbac output:webhook:dir=controlplane/config/webhook
248262
249263release-controlplane : $(RELEASE_DIR ) manifests-controlplane # # Release control-plane
250264 cd controlplane/config/manager && $(KUSTOMIZE ) edit set image controller=${CONTROLPLANE_IMG} :$(CONTROLPLANE_IMG_TAG )
@@ -253,6 +267,16 @@ release-controlplane: $(RELEASE_DIR) manifests-controlplane ## Release control-p
253267generate-controlplane : $(CONTROLLER_GEN )
254268 $(CONTROLLER_GEN ) object:headerFile=" hack/boilerplate.go.txt" paths=" $( shell pwd) /controlplane/..."
255269
270+ generate-controlplane-conversions : $(CONVERSION_GEN )
271+ $(CONVERSION_GEN ) \
272+ --input-dirs=./controlplane/api/v1beta1 \
273+ --extra-peer-dirs=sigs.k8s.io/cluster-api/api/v1beta1 \
274+ --extra-peer-dirs=github.com/k3s-io/cluster-api-k3s/bootstrap/api/v1beta1 \
275+ --build-tag=ignore_autogenerated_conversions \
276+ --output-file-base=zz_generated.conversion \
277+ --output-base=./ \
278+ --go-header-file=./hack/boilerplate.go.txt
279+
256280docker-build-controlplane : manager-controlplane # # Build control-plane
257281 DOCKER_BUILDKIT=1 docker build --build-arg builder_image=$(GO_CONTAINER_IMAGE ) --build-arg goproxy=$(GOPROXY ) --build-arg TARGETARCH=$(ARCH ) --build-arg package=./controlplane/main.go --build-arg ldflags=" $( LDFLAGS) " . -t ${CONTROLPLANE_IMG} :$(CONTROLPLANE_IMG_TAG )
258282
@@ -317,3 +341,6 @@ $(KUSTOMIZE): ## Put kustomize into tools folder.
317341
318342$(CONTROLLER_GEN ) : # # Build controller-gen from tools folder.
319343 GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) sigs.k8s.io/controller-tools/cmd/controller-gen $(CONTROLLER_GEN_BIN ) $(CONTROLLER_GEN_VER )
344+
345+ $(CONVERSION_GEN ) : # # Build conversion-gen from tools folder.
346+ GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) k8s.io/code-generator/cmd/conversion-gen $(CONVERSION_GEN_BIN ) $(CONVERSION_GEN_VER )
0 commit comments