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 $@