@@ -88,10 +88,6 @@ export KUBEBUILDER_ENVTEST_KUBERNETES_VERSION ?= 1.31.0
8888# ###########
8989# Binaries #
9090# ###########
91- CONTROLLER_GEN := $(abspath $(TOOLS_BIN_DIR ) /controller-gen)
92- controller-gen : $(CONTROLLER_GEN ) # # Build a local copy of controller-gen
93- $(CONTROLLER_GEN ) : # Build controller-gen from tools folder.
94- go install sigs.k8s.io/controller-tools/cmd/
[email protected] 9591
9692KUSTOMIZE := $(abspath $(TOOLS_BIN_DIR ) /kustomize)
9793kustomize : $(KUSTOMIZE ) # # Build a local copy of kustomize
@@ -124,12 +120,6 @@ clusterctl: $(CLUSTERCTL) ## Build a local copy of clusterctl
124120$(CLUSTERCTL ) :
125121 go install sigs.k8s.io/cluster-api/cmd/
[email protected] 126122
127- HELM := $(abspath $(TOOLS_BIN_DIR ) /helm)
128- helm : $(HELM ) # # Build a local copy of helm
129- $(HELM ) :
130- curl -sSL https://get.helm.sh/helm-v3.13.2-$$(go env GOOS ) -$$(go env GOARCH ) .tar.gz | tar xz -C $(TOOLS_BIN_DIR ) --strip-components=1 $$(go env GOOS ) -$$(go env GOARCH ) /helm
131- chmod a+rx $(HELM )
132-
133123HCLOUD := $(abspath $(TOOLS_BIN_DIR ) /hcloud)
134124hcloud : $(HCLOUD ) # # Build a local copy of hcloud
135125$(HCLOUD ) :
@@ -162,7 +152,7 @@ gotestsum: $(GOTESTSUM) # Build gotestsum from tools folder.
162152$(GOTESTSUM ) :
163153 go install gotest.tools/
[email protected] 164154
165- all-tools : $(GOTESTSUM ) $(go-cover-treemap ) $(go-binsize-treemap ) $(KIND ) $(KUBECTL ) $(CLUSTERCTL ) $(CTLPTL ) $(SETUP_ENVTEST ) $(ENVSUBST ) $(KUSTOMIZE ) $( CONTROLLER_GEN ) $( HELM ) # # Install all tools required for development
155+ all-tools : $(GOTESTSUM ) $(go-cover-treemap ) $(go-binsize-treemap ) $(KIND ) $(KUBECTL ) $(CLUSTERCTL ) $(CTLPTL ) $(SETUP_ENVTEST ) $(ENVSUBST ) $(KUSTOMIZE ) # # Install all tools required for development
166156 echo ' done'
167157
168158# #@ Development
@@ -193,21 +183,29 @@ wait-and-get-secret:
193183 ./hack/get-kubeconfig-of-workload-cluster.sh
194184 ${TIMEOUT} --foreground 15m bash -c " while ! $( KUBECTL) --kubeconfig=$( WORKER_CLUSTER_KUBECONFIG) get nodes | grep control-plane; do sleep 1; done"
195185
196- install-cilium-in-wl-cluster : $( HELM )
186+ install-cilium-in-wl-cluster :
197187 # Deploy cilium
198- $( HELM ) repo add cilium https://helm.cilium.io/
199- $( HELM ) repo update cilium
200- KUBECONFIG=$(WORKER_CLUSTER_KUBECONFIG ) $( HELM ) upgrade --install cilium cilium/cilium \
188+ helm repo add cilium https://helm.cilium.io/
189+ helm repo update cilium
190+ KUBECONFIG=$(WORKER_CLUSTER_KUBECONFIG ) helm upgrade --install cilium cilium/cilium \
201191 --namespace kube-system \
202192 -f templates/cilium/cilium.yaml
203193
194+
204195install-ccm-in-wl-cluster :
205- $(HELM ) repo add syself https://charts.syself.com
206- $(HELM ) repo update syself
207- KUBECONFIG=$(WORKER_CLUSTER_KUBECONFIG ) $(HELM ) upgrade --install ccm syself/ccm-hetzner --version 1.1.10 \
196+ ifeq ($(BUILD_IN_CONTAINER ) ,true)
197+ docker run --rm \
198+ -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
199+ -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
200+ $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
201+ else
202+ helm repo add syself https://charts.syself.com
203+ helm repo update syself
204+ KUBECONFIG=$(WORKER_CLUSTER_KUBECONFIG) helm upgrade --install ccm syself/ccm-hetzner --version 1.1.10 \
208205 --namespace kube-system \
209206 --set privateNetwork.enabled=$(PRIVATE_NETWORK)
210207 @echo 'run "kubectl --kubeconfig=$(WORKER_CLUSTER_KUBECONFIG) ..." to work with the new target cluster'
208+ endif
211209
212210add-ssh-pub-key :
213211 ./hack/ensure-env-variables.sh HCLOUD_TOKEN SSH_KEY SSH_KEY_NAME
@@ -570,6 +568,17 @@ verify-manifests:
570568verify-container-images : # # Verify container images
571569 trivy image -q --exit-code 1 --ignore-unfixed --severity MEDIUM,HIGH,CRITICAL $(IMAGE_PREFIX ) /$(INFRA_SHORT ) :latest
572570
571+ .PHONY : verify-generated-files
572+ verify-generated-files : # # Verify geneated files in git repo
573+ ifeq ($(BUILD_IN_CONTAINER ) ,true)
574+ docker run --rm \
575+ -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
576+ -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
577+ $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
578+ else
579+ ./hack/verify-generated-files.sh
580+ endif
581+
573582# #@ Generate
574583# ###########
575584# Generate #
@@ -581,7 +590,7 @@ generate-boilerplate: ## Generates missing boilerplates
581590# support go modules
582591generate-modules : # # Generates missing go modules
583592ifeq ($(BUILD_IN_CONTAINER ) ,true)
584- docker run --rm -t -i \
593+ docker run --rm \
585594 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
586595 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
587596 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -599,20 +608,37 @@ generate-modules-ci: generate-modules
599608 exit 1; \
600609 fi
601610
602- generate-manifests : $(CONTROLLER_GEN ) # # Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
603- $(CONTROLLER_GEN ) \
611+ generate-manifests : # # Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
612+ ifeq ($(BUILD_IN_CONTAINER ) ,true)
613+ docker run --rm \
614+ -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
615+ -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
616+ $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
617+ else
618+ # Ensure that these old binaries are not longer used. We use
619+ # these from the builder-image now.
620+ rm -f ./hack/tools/bin/controller-gen ./hack/tools/bin/helm
621+ controller-gen \
604622 paths=./api/... \
605623 paths=./controllers/... \
606624 crd:crdVersions=v1 \
607625 rbac:roleName=manager-role \
608626 output:crd:dir=./config/crd/bases \
609627 output:webhook:dir=./config/webhook \
610628 webhook
629+ endif
611630
612- generate-go-deepcopy : $(CONTROLLER_GEN ) # # Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
613- $(CONTROLLER_GEN ) \
631+ generate-go-deepcopy : # # Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
632+ ifeq ($(BUILD_IN_CONTAINER ) ,true)
633+ docker run --rm \
634+ -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
635+ -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
636+ $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
637+ else
638+ controller-gen \
614639 object:headerFile="./hack/boilerplate/boilerplate.generatego.txt" \
615640 paths="./api/..."
641+ endif
616642
617643generate-api-ci : generate-manifests generate-go-deepcopy
618644 @if ! (git diff --exit-code ); then \
@@ -635,7 +661,7 @@ cluster-templates: $(KUSTOMIZE)
635661.PHONY : format-golang
636662format-golang : # # Format the Go codebase and run auto-fixers if supported by the linter.
637663ifeq ($(BUILD_IN_CONTAINER ) ,true)
638- docker run --rm -t -i \
664+ docker run --rm \
639665 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
640666 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
641667 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -652,7 +678,7 @@ format-starlark: ## Format the Starlark codebase
652678.PHONY : format-yaml
653679format-yaml : # # Lint YAML files
654680ifeq ($(BUILD_IN_CONTAINER ) ,true)
655- docker run --rm -t -i \
681+ docker run --rm \
656682 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
657683 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
658684 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -668,7 +694,7 @@ endif
668694.PHONY : lint-golang
669695lint-golang : # # Lint Golang codebase
670696ifeq ($(BUILD_IN_CONTAINER ) ,true)
671- docker run --rm -t -i \
697+ docker run --rm \
672698 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
673699 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
674700 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -681,7 +707,7 @@ endif
681707.PHONY : lint-golang-ci
682708lint-golang-ci :
683709ifeq ($(BUILD_IN_CONTAINER ) ,true)
684- docker run --rm -t -i \
710+ docker run --rm \
685711 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
686712 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
687713 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -694,7 +720,7 @@ endif
694720.PHONY : lint-yaml
695721lint-yaml : # # Lint YAML files
696722ifeq ($(BUILD_IN_CONTAINER ) ,true)
697- docker run --rm -t -i \
723+ docker run --rm \
698724 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
699725 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
700726 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -706,7 +732,7 @@ endif
706732.PHONY : lint-yaml-ci
707733lint-yaml-ci :
708734ifeq ($(BUILD_IN_CONTAINER ) ,true)
709- docker run --rm -t -i \
735+ docker run --rm \
710736 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
711737 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
712738 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -719,7 +745,7 @@ DOCKERFILES=$(shell find . -not \( -path ./hack -prune \) -not \( -path ./vendor
719745.PHONY : lint-dockerfile
720746lint-dockerfile : # # Lint Dockerfiles
721747ifeq ($(BUILD_IN_CONTAINER ) ,true)
722- docker run --rm -t -i \
748+ docker run --rm \
723749 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
724750 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
725751 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -730,7 +756,7 @@ endif
730756
731757lint-links : # # Link Checker
732758ifeq ($(BUILD_IN_CONTAINER ) ,true)
733- docker run --rm -t -i \
759+ docker run --rm \
734760 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
735761 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
736762else
@@ -751,7 +777,7 @@ format: format-starlark format-golang format-yaml ## Format Codebase
751777.PHONY : generate-mocks
752778generate-mocks : # # Generate Mocks
753779ifeq ($(BUILD_IN_CONTAINER ) ,true)
754- docker run --rm -t -i \
780+ docker run --rm \
755781 -v $(shell go env GOPATH)/pkg:/go/pkg$(MOUNT_FLAGS) \
756782 -v $(shell pwd):/src/cluster-api-provider-$(INFRA_PROVIDER)$(MOUNT_FLAGS) \
757783 $(BUILDER_IMAGE):$(BUILDER_IMAGE_VERSION) $@;
@@ -804,3 +830,10 @@ create-hetzner-installimage-tgz:
804830 @echo " ============= ↓↓↓↓↓ Now update the version number here ↓↓↓↓↓ ============="
805831 @git ls-files | xargs grep -P ' hetzner-installimage.*v\d+\.\d+' || true
806832 @echo " ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"
833+
834+ builder-image-shell : # # Start an interactive shell in the builder image.
835+ docker run --rm -t -i \
836+ --entrypoint bash \
837+ -v $(shell go env GOPATH) /pkg:/go/pkg$(MOUNT_FLAGS ) \
838+ -v $(shell pwd) :/src/cluster-api-provider-$(INFRA_PROVIDER )$(MOUNT_FLAGS ) \
839+ $(BUILDER_IMAGE ) :$(BUILDER_IMAGE_VERSION )
0 commit comments