commit 84de98442a0d9a9b2005b35b63f293789e619e37
| author | Ashley Davis <ashley.davis@venafi.com> |
| date | 2023-11-16T10:10:44Z |
| subject | fix makefile targets |
commit 84de98442a0d9a9b2005b35b63f293789e619e37
Author: Ashley Davis <ashley.davis@venafi.com>
Date: 2023-11-16T10:10:44Z
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 <ashley.davis@venafi.com>
---
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 $@