From 94cf88135ed0362db2b8dde35e3c9a11f3d0fa80 Mon Sep 17 00:00:00 2001 From: James Slagle Date: Tue, 9 Dec 2025 08:01:48 -0500 Subject: [PATCH] Add PHONY for variable targets The Makefile targets that are variables, weren't set as PHONY. That means their recipes weren't run when the generated files already existed. This could cause issues, such as with an out of date controller-gen. Signed-off-by: James Slagle --- Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Makefile b/Makefile index 69e631166..8f4e859fb 100644 --- a/Makefile +++ b/Makefile @@ -303,6 +303,7 @@ undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/confi ## Location to install dependencies to LOCALBIN ?= $(shell pwd)/bin +.PHONY: $(LOCALBIN) $(LOCALBIN): mkdir -p $(LOCALBIN) @@ -327,6 +328,7 @@ OC_VERSION ?= 4.16.0 KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" .PHONY: kustomize kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary. If wrong version is installed, it will be removed before downloading. +.PHONY: $(KUSTOMIZE) $(KUSTOMIZE): $(LOCALBIN) @if test -x $(LOCALBIN)/kustomize && ! $(LOCALBIN)/kustomize version | grep -q $(KUSTOMIZE_VERSION); then \ echo "$(LOCALBIN)/kustomize version is not expected $(KUSTOMIZE_VERSION). Removing it before installing."; \ @@ -336,22 +338,26 @@ $(KUSTOMIZE): $(LOCALBIN) .PHONY: controller-gen controller-gen: gowork $(CONTROLLER_GEN) ## Download controller-gen locally if necessary. If wrong version is installed, it will be overwritten. +.PHONY: $(CONTROLLER_GEN) $(CONTROLLER_GEN): $(LOCALBIN) test -s $(LOCALBIN)/controller-gen && $(LOCALBIN)/controller-gen --version | grep -q $(CONTROLLER_TOOLS_VERSION) || \ GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION) .PHONY: crd-to-markdown crd-to-markdown: $(CRD_MARKDOWN) ## Download crd-to-markdown locally if necessary. +.PHONY: $(CRD_MARKDOWN) $(CRD_MARKDOWN): $(LOCALBIN) test -s $(LOCALBIN)/crd-to-markdown || GOBIN=$(LOCALBIN) go install github.com/clamoriniere/crd-to-markdown@$(CRD_MARKDOWN_VERSION) .PHONY: envtest envtest: $(ENVTEST) ## Download envtest-setup locally if necessary. +.PHONY: $(ENVTEST) $(ENVTEST): $(LOCALBIN) test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@$(SETUP_ENVTEST_VERSION) .PHONY: ginkgo ginkgo: $(GINKGO) ## Download ginkgo locally if necessary. +.PHONY: $(GINKGO) $(GINKGO): $(LOCALBIN) test -s $(LOCALBIN)/ginkgo || GOBIN=$(LOCALBIN) go install github.com/onsi/ginkgo/v2/ginkgo @@ -361,6 +367,7 @@ kuttl-test: ## Run kuttl tests .PHONY: kuttl kuttl: $(KUTTL) ## Download kubectl-kuttl locally if necessary. +.PHONY: $(KUTTL) $(KUTTL): $(LOCALBIN) test -s $(LOCALBIN)/kubectl-kuttl || curl -L -o $(LOCALBIN)/kubectl-kuttl https://github.com/kudobuilder/kuttl/releases/download/v$(KUTTL_VERSION)/kubectl-kuttl_$(KUTTL_VERSION)_linux_x86_64 chmod +x $(LOCALBIN)/kubectl-kuttl