Makefile 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. MAKEFLAGS += --warn-undefined-variables
  2. SHELL := /usr/bin/env bash
  3. .SHELLFLAGS := -euo pipefail -c
  4. KIND_IMG = "kindest/node:v1.33.4@sha256:25a6018e48dfcaee478f4a59af81157a437f15e6e140bf103f85a2e7cd0cbbf2"
  5. DOCKER_BUILD_ARGS ?=
  6. export E2E_IMAGE_NAME ?= ghcr.io/external-secrets/external-secrets-e2e
  7. export GINKGO_LABELS ?= !managed && !v2
  8. export V2_GINKGO_LABELS ?= v2
  9. export TEST_SUITES ?= provider generator flux argocd
  10. export OCI_IMAGE_NAME = ghcr.io/external-secrets/external-secrets
  11. export IMAGE_NAME ?= $(OCI_IMAGE_NAME)
  12. start-kind: ## Start kind cluster
  13. kind create cluster \
  14. --name external-secrets \
  15. --config kind.yaml \
  16. --retain \
  17. --image "$(KIND_IMG)"
  18. stop-kind: ## Stop kind cluster
  19. kind delete cluster \
  20. --name external-secrets \
  21. test: e2e-image ## Run e2e tests against current kube context
  22. $(MAKE) -C ../ docker.build \
  23. IMAGE_NAME=$(IMAGE_NAME) \
  24. VERSION=$(VERSION) \
  25. ARCH=amd64 \
  26. DOCKER_BUILD_ARGS="${DOCKER_BUILD_ARGS} --build-arg TARGETARCH=amd64 --build-arg TARGETOS=linux"
  27. $(MAKE) -C ../ docker.build \
  28. IMAGE_NAME=$(OCI_IMAGE_NAME) \
  29. VERSION=$(VERSION) \
  30. ARCH=amd64 \
  31. DOCKER_BUILD_ARGS="${DOCKER_BUILD_ARGS} --build-arg TARGETARCH=amd64 --build-arg TARGETOS=linux"
  32. kind load docker-image --name="external-secrets" $(IMAGE_NAME):$(VERSION)
  33. kind load docker-image --name="external-secrets" $(OCI_IMAGE_NAME):$(VERSION)
  34. kind load docker-image --name="external-secrets" $(E2E_IMAGE_NAME):$(VERSION)
  35. ./run.sh
  36. test.v2: e2e-image ## Run v2 e2e tests against current kube context
  37. $(MAKE) -C ../ docker.build.controller.e2e \
  38. IMAGE_NAME=$(IMAGE_NAME) \
  39. VERSION=$(VERSION) \
  40. ARCH=amd64 \
  41. DOCKER_BUILD_ARGS="${DOCKER_BUILD_ARGS} --build-arg TARGETARCH=amd64 --build-arg TARGETOS=linux"
  42. $(MAKE) -C ../ docker.build.provider.kubernetes \
  43. VERSION=$(VERSION) \
  44. ARCH=amd64 \
  45. DOCKER_BUILD_ARGS="${DOCKER_BUILD_ARGS} --build-arg TARGETARCH=amd64 --build-arg TARGETOS=linux"
  46. $(MAKE) -C ../ docker.build.controller.e2e \
  47. IMAGE_NAME=$(OCI_IMAGE_NAME) \
  48. VERSION=$(VERSION) \
  49. ARCH=amd64 \
  50. DOCKER_BUILD_ARGS="${DOCKER_BUILD_ARGS} --build-arg TARGETARCH=amd64 --build-arg TARGETOS=linux"
  51. kind load docker-image --name="external-secrets" $(IMAGE_NAME):$(VERSION)
  52. kind load docker-image --name="external-secrets" $(OCI_IMAGE_NAME):$(VERSION)
  53. kind load docker-image --name="external-secrets" $(E2E_IMAGE_NAME):$(VERSION)
  54. kind load docker-image --name="external-secrets" ghcr.io/external-secrets/provider-kubernetes:$(VERSION)
  55. GINKGO_LABELS="$(V2_GINKGO_LABELS)" E2E_PROVIDER_MODE="v2" TEST_SUITES="provider" ./run.sh
  56. test.managed: e2e-image ## Run e2e tests against current kube context
  57. $(MAKE) -C ../ docker.build \
  58. VERSION=$(VERSION) \
  59. ARCH=amd64 \
  60. DOCKER_BUILD_ARGS="${DOCKER_BUILD_ARGS} --build-arg TARGETARCH=amd64 --build-arg TARGETOS=linux"
  61. $(MAKE) -C ../ docker.build \
  62. IMAGE_NAME=$(OCI_IMAGE_NAME) \
  63. VERSION=$(VERSION) \
  64. ARCH=amd64 \
  65. DOCKER_BUILD_ARGS="${DOCKER_BUILD_ARGS} --build-arg TARGETARCH=amd64 --build-arg TARGETOS=linux"
  66. $(MAKE) -C ../ docker.push \
  67. VERSION=$(VERSION)
  68. $(MAKE) -C ../ docker.push \
  69. IMAGE_NAME=$(OCI_IMAGE_NAME) \
  70. VERSION=$(VERSION)
  71. $(MAKE) -C ../ docker.push \
  72. IMAGE_NAME=$(E2E_IMAGE_NAME) \
  73. VERSION=$(VERSION)
  74. ./run.sh
  75. e2e-bin: install-ginkgo
  76. CGO_ENABLED=0 ginkgo build ./suites/...
  77. e2e-image: e2e-bin
  78. -rm -rf ./k8s/deploy
  79. mkdir -p k8s
  80. $(MAKE) -C ../ helm.generate
  81. cp -r ../deploy ./k8s
  82. docker build $(DOCKER_BUILD_ARGS) -t $(E2E_IMAGE_NAME):$(VERSION) -f Dockerfile ..
  83. GINKGO_VERSION := $(shell grep 'github.com/onsi/ginkgo/v2' go.mod | awk '{print $$2}')
  84. install-ginkgo:
  85. @echo "Installing ginkgo version $(GINKGO_VERSION) from go.mod"
  86. go install github.com/onsi/ginkgo/v2/ginkgo@$(GINKGO_VERSION)
  87. help: ## displays this help message
  88. @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_\/-]+:.*?## / {printf "\033[34m%-18s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
  89. sort | \
  90. grep -v '#'