1- .PHONY : default help format lint vet security build build-prereq push unit-test local-test ci clean e2e-tests check-license
1+ .PHONY : default help format lint vet security build build-prereq push unit-test local-test local-test-karpenter local-test-node-labels ci clean e2e-tests check-license
22
33NAME ?= adobe/k8s-shredder
44K8S_SHREDDER_VERSION ?= "dev"
5- KINDNODE_VERSION ?= "v1.30.4 "
5+ KINDNODE_VERSION ?= "v1.31.9 "
66COMMIT ?= $(shell git rev-parse --short HEAD)
77TEST_CLUSTERNAME ?= "k8s-shredder-test-cluster"
8+ TEST_CLUSTERNAME_KARPENTER ?= "k8s-shredder-test-cluster-karpenter"
9+ TEST_CLUSTERNAME_NODE_LABELS ?= "k8s-shredder-test-cluster-node-labels"
10+ KUBECONFIG_LOCALTEST ?= "kubeconfig-localtest"
11+ KUBECONFIG_KARPENTER ?= "kubeconfig-local-test-karpenter"
12+ KUBECONFIG_NODE_LABELS ?= "kubeconfig-local-test-node-labels"
813
914GOSEC =gosec -quiet -exclude=G107
1015
@@ -59,11 +64,31 @@ build: check-license lint vet security unit-test ## Builds the local Docker cont
5964
6065# TEST
6166# -----------
62- local-test : build # # Test docker image in a kind cluster
67+ local-test : build # # Test docker image in a kind cluster (with Karpenter drift and node label detection disabled)
6368 @hash kind 2> /dev/null && { \
6469 echo " Test docker image in a kind cluster..." ; \
65- ./internal/testing/local_env_prep.sh " ${K8S_SHREDDER_VERSION} " " ${KINDNODE_VERSION} " " ${TEST_CLUSTERNAME} " && \
66- ./internal/testing/cluster_upgrade.sh " ${TEST_CLUSTERNAME} " || \
70+ ./internal/testing/local_env_prep.sh " ${K8S_SHREDDER_VERSION} " " ${KINDNODE_VERSION} " " ${TEST_CLUSTERNAME} " " ${KUBECONFIG_LOCALTEST} " && \
71+ ./internal/testing/cluster_upgrade.sh " ${TEST_CLUSTERNAME} " " ${KUBECONFIG_LOCALTEST} " || \
72+ exit 1; \
73+ } || { \
74+ echo >&2 " [WARN] I require kind but it's not installed(see https://kind.sigs.k8s.io). Assuming a cluster is already accessible." ; \
75+ }
76+
77+ local-test-karpenter : build # # Test docker image in a kind cluster with Karpenter and drift detection enabled
78+ @hash kind 2> /dev/null && { \
79+ echo " Test docker image in a kind cluster with Karpenter..." ; \
80+ ./internal/testing/local_env_prep_karpenter.sh " ${K8S_SHREDDER_VERSION} " " ${KINDNODE_VERSION} " " ${TEST_CLUSTERNAME_KARPENTER} " " ${KUBECONFIG_KARPENTER} " && \
81+ ./internal/testing/cluster_upgrade_karpenter.sh " ${TEST_CLUSTERNAME_KARPENTER} " " ${KUBECONFIG_KARPENTER} " || \
82+ exit 1; \
83+ } || { \
84+ echo >&2 " [WARN] I require kind but it's not installed(see https://kind.sigs.k8s.io). Assuming a cluster is already accessible." ; \
85+ }
86+
87+ local-test-node-labels : build # # Test docker image in a kind cluster with node label detection enabled
88+ @hash kind 2> /dev/null && { \
89+ echo " Test docker image in a kind cluster with node label detection..." ; \
90+ ./internal/testing/local_env_prep_node_labels.sh " ${K8S_SHREDDER_VERSION} " " ${KINDNODE_VERSION} " " ${TEST_CLUSTERNAME_NODE_LABELS} " " ${KUBECONFIG_NODE_LABELS} " && \
91+ ./internal/testing/cluster_upgrade_node_labels.sh " ${TEST_CLUSTERNAME_NODE_LABELS} " " ${KUBECONFIG_NODE_LABELS} " || \
6792 exit 1; \
6893 } || { \
6994 echo >&2 " [WARN] I require kind but it's not installed(see https://kind.sigs.k8s.io). Assuming a cluster is already accessible." ; \
@@ -76,7 +101,7 @@ unit-test: ## Run unit tests
76101
77102e2e-tests : # # Run e2e tests for k8s-shredder deployed in a local kind cluster
78103 @echo " Run e2e tests for k8s-shredder..."
79- @KUBECONFIG=${PWD} /kubeconfig go test internal/testing/e2e_test.go -v
104+ @KUBECONFIG=${PWD} /${KUBECONFIG_LOCALTEST} go test internal/testing/e2e_test.go -v
80105
81106# DEMO targets
82107# -----------
@@ -103,8 +128,10 @@ publish: ## Release a new version
103128# -----------
104129clean : # # Clean up local testing environment
105130 @echo " Cleaning up your local testing environment..."
106- @kind delete cluster --name=" ${TEST_CLUSTERNAME} " > /dev/null 2>&1 || true
131+ @kind delete cluster --name=" ${TEST_CLUSTERNAME} " # # > /dev/null 2>&1 || true
132+ @kind delete cluster --name=" ${TEST_CLUSTERNAME_KARPENTER} " # # > /dev/null 2>&1 || true
133+ @kind delete cluster --name=" ${TEST_CLUSTERNAME_NODE_LABELS} " # # > /dev/null 2>&1 || true
107134 @echo " Removing all generated files and directories"
108- @rm -rf dist/ k8s-shredder kubeconfig
135+ @rm -rf dist/ k8s-shredder kubeconfig ${KUBECONFIG_LOCALTEST} ${KUBECONFIG_KARPENTER} ${KUBECONFIG_NODE_LABELS}
109136 @echo " Done!"
110137
0 commit comments