| Giorgi Lekveishvili | 0048a78 | 2023-06-20 18:32:21 +0400 | [diff] [blame^] | 1 | OS ?= $(shell go env GOOS) |
| 2 | ARCH ?= $(shell go env GOARCH) |
| 3 | |
| 4 | ifeq (Darwin, $(shell uname)) |
| 5 | GREP_PREGEX_FLAG := E |
| 6 | else |
| 7 | GREP_PREGEX_FLAG := P |
| 8 | endif |
| 9 | |
| 10 | GO_VERSION ?= $(shell go mod edit -json | grep -${GREP_PREGEX_FLAG}o '"Go":\s+"([0-9.]+)"' | sed -E 's/.+"([0-9.]+)"/\1/') |
| 11 | |
| 12 | IMAGE_NAME := bwolf/cert-manager-webhook-gandi |
| 13 | IMAGE_TAG := 0.2.0 |
| 14 | |
| 15 | OUT := $(shell pwd)/_out |
| 16 | |
| 17 | KUBEBUILDER_VERSION=2.3.2 |
| 18 | |
| 19 | $(shell mkdir -p "${OUT}") |
| 20 | |
| 21 | test: _test/kubebuilder |
| 22 | TEST_ASSET_ETCD=_test/kubebuilder/bin/etcd \ |
| 23 | TEST_ASSET_KUBE_APISERVER=_test/kubebuilder/bin/kube-apiserver \ |
| 24 | TEST_ASSET_KUBECTL=_test/kubebuilder/bin/kubectl \ |
| 25 | go test -v . |
| 26 | |
| 27 | _test/kubebuilder: |
| 28 | curl -fsSL https://github.com/kubernetes-sigs/kubebuilder/releases/download/v${KUBEBUILDER_VERSION}/kubebuilder_${KUBEBUILDER_VERSION}_${OS}_${ARCH}.tar.gz -o kubebuilder-tools.tar.gz |
| 29 | mkdir -p _test/kubebuilder |
| 30 | tar -xvf kubebuilder-tools.tar.gz |
| 31 | mv kubebuilder_${KUBEBUILDER_VERSION}_${OS}_${ARCH}/bin _test/kubebuilder/ |
| 32 | rm kubebuilder-tools.tar.gz |
| 33 | rm -R kubebuilder_${KUBEBUILDER_VERSION}_${OS}_${ARCH} |
| 34 | |
| 35 | clean: clean-kubebuilder |
| 36 | |
| 37 | clean-kubebuilder: |
| 38 | rm -Rf _test/kubebuilder |
| 39 | |
| 40 | build: |
| 41 | docker buildx build --target=image --platform=linux/amd64 --output=type=docker,name=${IMAGE_NAME}:${IMAGE_TAG} --tag=${IMAGE_NAME}:latest --build-arg=GO_VERSION=${GO_VERSION} . |
| 42 | |
| 43 | package: |
| 44 | helm package deploy/cert-manager-webhook-gandi -d charts/ |
| 45 | helm repo index charts/ --url https://bwolf.github.io/cert-manager-webhook-gandi |
| 46 | |
| 47 | .PHONY: rendered-manifest.yaml |
| 48 | rendered-manifest.yaml: |
| 49 | helm template \ |
| 50 | --set image.repository=${IMAGE_NAME} \ |
| 51 | --set image.tag=${IMAGE_TAG} \ |
| 52 | deploy/cert-manager-webhook-gandi > "${OUT}/rendered-manifest.yaml" |