From 84de98442a0d9a9b2005b35b63f293789e619e37 Mon Sep 17 00:00:00 2001 From: Ashley Davis Date: Thu, 16 Nov 2023 10:10:44 +0000 Subject: [PATCH] fix makefile targets This would create several targets which didn't incorporate any version numbers and so wouldn't be updated when version numbers were changed. There were also non-make-ey ways of doings things like variables and folder creation. This also bumps the version of the kubebuilder tools we use Signed-off-by: Ashley Davis --- Makefile | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index 7ddbedd..9d3dc55 100644 --- a/Makefile +++ b/Makefile @@ -7,36 +7,39 @@ IMAGE_TAG := "latest" OUT := $(shell pwd)/_out -KUBE_VERSION=1.25.0 +KUBEBUILDER_VERSION=1.28.0 -$(shell mkdir -p "$(OUT)") -export TEST_ASSET_ETCD=_test/kubebuilder/etcd -export TEST_ASSET_KUBE_APISERVER=_test/kubebuilder/kube-apiserver -export TEST_ASSET_KUBECTL=_test/kubebuilder/kubectl +HELM_FILES := $(shell find deploy/example-webhook) -test: _test/kubebuilder +test: _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/etcd _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kube-apiserver _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kubectl + TEST_ASSET_ETCD=_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/etcd \ + TEST_ASSET_KUBE_APISERVER=_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kube-apiserver \ + TEST_ASSET_KUBECTL=_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kubectl \ $(GO) test -v . -_test/kubebuilder: - curl -fsSL https://go.kubebuilder.io/test-tools/$(KUBE_VERSION)/$(OS)/$(ARCH) -o kubebuilder-tools.tar.gz - mkdir -p _test/kubebuilder - tar -xvf kubebuilder-tools.tar.gz - mv kubebuilder/bin/* _test/kubebuilder/ - rm kubebuilder-tools.tar.gz - rm -R kubebuilder +_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH).tar.gz: | _test + curl -fsSL https://go.kubebuilder.io/test-tools/$(KUBEBUILDER_VERSION)/$(OS)/$(ARCH) -o $@ -clean: clean-kubebuilder +_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/etcd _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kube-apiserver _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kubectl: _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH).tar.gz | _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH) + tar xfO $< kubebuilder/bin/$(notdir $@) > $@ && chmod +x $@ -clean-kubebuilder: - rm -Rf _test/kubebuilder +.PHONY: clean +clean: + rm -r _test $(OUT) +.PHONY: build build: docker build -t "$(IMAGE_NAME):$(IMAGE_TAG)" . .PHONY: rendered-manifest.yaml -rendered-manifest.yaml: +rendered-manifest.yaml: $(OUT)/rendered-manifest.yaml + +$(OUT)/rendered-manifest.yaml: $(HELM_FILES) | $(OUT) helm template \ --name example-webhook \ --set image.repository=$(IMAGE_NAME) \ --set image.tag=$(IMAGE_TAG) \ - deploy/example-webhook > "$(OUT)/rendered-manifest.yaml" + deploy/example-webhook > $@ + +_test $(OUT) _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH): + mkdir -p $@