|
1 | | -OS ?= $(shell go env GOOS) |
2 | | -ARCH ?= $(shell go env GOARCH) |
| 1 | +GO ?= $(shell which go) |
| 2 | +OS ?= $(shell $(GO) env GOOS) |
| 3 | +ARCH ?= $(shell $(GO) env GOARCH) |
3 | 4 |
|
4 | | -# not used |
5 | | -IMAGE_NAME := "waldner/cert-manager-webhook-he" |
6 | | -IMAGE_TAG := "0.0.1" |
| 5 | +IMAGE_NAME := "webhook" |
| 6 | +IMAGE_TAG := "latest" |
7 | 7 |
|
8 | 8 | OUT := $(shell pwd)/_out |
9 | 9 |
|
10 | | -KUBE_VERSION=1.24.1 |
| 10 | +KUBEBUILDER_VERSION=1.28.0 |
11 | 11 |
|
12 | | -USE_SECRETS ?= false |
13 | | -HE_USERNAME ?= "" |
14 | | -HE_PASSWORD ?= "" |
15 | | -HE_APIKEY ?= "" |
| 12 | +HELM_FILES := $(shell find deploy/cert-manager-webhook-he) |
16 | 13 |
|
17 | | -$(shell mkdir -p "$(OUT)") |
18 | | -export TEST_ASSET_ETCD=_test/kubebuilder/bin/etcd |
19 | | -export TEST_ASSET_KUBE_APISERVER=_test/kubebuilder/bin/kube-apiserver |
20 | | -export TEST_ASSET_KUBECTL=_test/kubebuilder/bin/kubectl |
| 14 | +test: _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/etcd _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kube-apiserver _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kubectl |
| 15 | + TEST_ASSET_ETCD=_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/etcd \ |
| 16 | + TEST_ASSET_KUBE_APISERVER=_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kube-apiserver \ |
| 17 | + TEST_ASSET_KUBECTL=_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH)/kubectl \ |
| 18 | + $(GO) test -v . |
21 | 19 |
|
22 | | -test: _test/kubebuilder |
23 | | - USE_SECRETS=true go test -v . |
| 20 | +_test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH).tar.gz: | _test |
| 21 | + curl -fsSL https://go.kubebuilder.io/test-tools/$(KUBEBUILDER_VERSION)/$(OS)/$(ARCH) -o $@ |
24 | 22 |
|
25 | | -_test/kubebuilder: |
26 | | - curl -fsSL https://go.kubebuilder.io/test-tools/$(KUBE_VERSION)/$(OS)/$(ARCH) -o kubebuilder-tools.tar.gz |
27 | | - mkdir -p _test/kubebuilder |
28 | | - tar -xvf kubebuilder-tools.tar.gz |
29 | | - mv kubebuilder/bin _test/kubebuilder/ |
30 | | - rm kubebuilder-tools.tar.gz |
31 | | - rm -R kubebuilder |
| 23 | +_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) |
| 24 | + tar xfO $< kubebuilder/bin/$(notdir $@) > $@ && chmod +x $@ |
32 | 25 |
|
33 | | -clean: clean-kubebuilder |
34 | | - |
35 | | -clean-kubebuilder: |
36 | | - rm -Rf _test/kubebuilder |
| 26 | +.PHONY: clean |
| 27 | +clean: |
| 28 | + rm -r _test $(OUT) |
37 | 29 |
|
| 30 | +.PHONY: build |
38 | 31 | build: |
39 | 32 | docker build -t "$(IMAGE_NAME):$(IMAGE_TAG)" . |
40 | 33 |
|
41 | 34 | .PHONY: rendered-manifest.yaml |
42 | | -rendered-manifest.yaml: |
| 35 | +rendered-manifest.yaml: $(OUT)/rendered-manifest.yaml |
| 36 | + |
| 37 | +$(OUT)/rendered-manifest.yaml: $(HELM_FILES) | $(OUT) |
43 | 38 | helm template \ |
44 | | - --set image.repository=$(IMAGE_NAME) \ |
45 | | - --set image.tag=$(IMAGE_TAG) \ |
46 | | - --set auth.useSecrets=$(USE_SECRETS) \ |
47 | | - --set auth.heUsername=$(HE_USERNAME) \ |
48 | | - --set auth.hePassword=$(HE_PASSWORD) \ |
49 | | - --set auth.heApiKey=$(HE_APIKEY) \ |
50 | | - deploy/cert-manager-webhook-he > "$(OUT)/rendered-manifest.yaml" |
| 39 | + --name cert-manager-webhook-he \ |
| 40 | + --set image.repository=$(IMAGE_NAME) \ |
| 41 | + --set image.tag=$(IMAGE_TAG) \ |
| 42 | + deploy/cert-manager-webhook-he > $@ |
51 | 43 |
|
| 44 | +_test $(OUT) _test/kubebuilder-$(KUBEBUILDER_VERSION)-$(OS)-$(ARCH): |
| 45 | + mkdir -p $@ |
0 commit comments