|
72 | 72 | export GOPATH := $(shell go env GOPATH)
|
73 | 73 | endif
|
74 | 74 |
|
| 75 | +# |
| 76 | +# Ginkgo configuration. |
| 77 | +# |
| 78 | +GINKGO_FOCUS ?= |
| 79 | +GINKGO_SKIP ?= |
| 80 | +GINKGO_NODES ?= 1 |
| 81 | +GINKGO_TIMEOUT ?= 2h |
| 82 | +GINKGO_POLL_PROGRESS_AFTER ?= 10m |
| 83 | +GINKGO_POLL_PROGRESS_INTERVAL ?= 1m |
| 84 | +E2E_CONF_FILE ?= $(ROOT_DIR)/$(TEST_DIR)/e2e/config/docker.yaml |
| 85 | +SKIP_RESOURCE_CLEANUP ?= false |
| 86 | +USE_EXISTING_CLUSTER ?= false |
| 87 | +GINKGO_NOCOLOR ?= false |
| 88 | + |
| 89 | +# to set multiple ginkgo skip flags, if any |
| 90 | +ifneq ($(strip $(GINKGO_SKIP)),) |
| 91 | +_SKIP_ARGS := $(foreach arg,$(strip $(GINKGO_SKIP)),-skip="$(arg)") |
| 92 | +endif |
| 93 | + |
75 | 94 | #
|
76 | 95 | # Binaries.
|
77 | 96 | #
|
@@ -126,6 +145,11 @@ YQ_BIN := yq
|
126 | 145 | YQ := $(abspath $(TOOLS_BIN_DIR)/$(YQ_BIN)-$(YQ_VER))
|
127 | 146 | YQ_PKG := github.com/mikefarah/yq/v4
|
128 | 147 |
|
| 148 | +GINGKO_VER := v2.2.0 |
| 149 | +GINKGO_BIN := ginkgo |
| 150 | +GINKGO := $(abspath $(TOOLS_BIN_DIR)/$(GINKGO_BIN)-$(GINGKO_VER)) |
| 151 | +GINKGO_PKG := github.com/onsi/ginkgo/v2/ginkgo |
| 152 | + |
129 | 153 | CONVERSION_VERIFIER_BIN := conversion-verifier
|
130 | 154 | CONVERSION_VERIFIER := $(abspath $(TOOLS_BIN_DIR)/$(CONVERSION_VERIFIER_BIN))
|
131 | 155 |
|
@@ -666,10 +690,6 @@ test-cover: ## Run unit and integration tests and generate a coverage report
|
666 | 690 | go tool cover -func=out/coverage.out -o out/coverage.txt
|
667 | 691 | go tool cover -html=out/coverage.out -o out/coverage.html
|
668 | 692 |
|
669 |
| -.PHONY: test-e2e |
670 |
| -test-e2e: ## Run e2e tests |
671 |
| - $(MAKE) -C $(TEST_DIR)/e2e run |
672 |
| - |
673 | 693 | .PHONY: test-capd
|
674 | 694 | test-capd: $(SETUP_ENVTEST) ## Run unit and integration tests for capd
|
675 | 695 | cd $(CAPD_DIR); KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test ./... $(TEST_ARGS)
|
@@ -698,6 +718,17 @@ test-test-extension-junit: $(SETUP_ENVTEST) $(GOTESTSUM) ## Run unit and integra
|
698 | 718 | $(GOTESTSUM) --junitfile $(ARTIFACTS)/junit.test_extension.xml --raw-command cat $(ARTIFACTS)/junit.test_extension.stdout
|
699 | 719 | exit $$(cat $(ARTIFACTS)/junit.test_extension.exitcode)
|
700 | 720 |
|
| 721 | +.PHONY: test-e2e |
| 722 | +test-e2e: $(GINKGO) generate-e2e-templates generate-test-extension-deployment ## Run the end-to-end tests |
| 723 | + $(GINKGO) -v --trace -poll-progress-after=$(GINKGO_POLL_PROGRESS_AFTER) \ |
| 724 | + -poll-progress-interval=$(GINKGO_POLL_PROGRESS_INTERVAL) --tags=e2e --focus="$(GINKGO_FOCUS)" \ |
| 725 | + $(_SKIP_ARGS) --nodes=$(GINKGO_NODES) --timeout=$(GINKGO_TIMEOUT) --no-color=$(GINKGO_NOCOLOR) \ |
| 726 | + --output-dir="$(ARTIFACTS)" --junit-report="junit.e2e_suite.1.xml" $(GINKGO_ARGS) $(ROOT_DIR)/$(TEST_DIR)/e2e -- \ |
| 727 | + -e2e.artifacts-folder="$(ARTIFACTS)" \ |
| 728 | + -e2e.config="$(E2E_CONF_FILE)" \ |
| 729 | + -e2e.skip-resource-cleanup=$(SKIP_RESOURCE_CLEANUP) -e2e.use-existing-cluster=$(USE_EXISTING_CLUSTER) |
| 730 | + |
| 731 | + |
701 | 732 | .PHONY: kind-cluster
|
702 | 733 | kind-cluster: ## Create a new kind cluster designed for development with Tilt
|
703 | 734 | hack/kind-install-for-capd.sh
|
@@ -1079,6 +1110,9 @@ $(TILT_PREPARE_BIN): $(TILT_PREPARE) ## Build a local copy of tilt-prepare.
|
1079 | 1110 | .PHONY: $(GOLANGCI_LINT_BIN)
|
1080 | 1111 | $(GOLANGCI_LINT_BIN): $(GOLANGCI_LINT) ## Build a local copy of golangci-lint
|
1081 | 1112 |
|
| 1113 | +.PHONY: $(GINKGO_BIN) |
| 1114 | +$(GINKGO_BIN): $(GINKGO) ## Build a local copy of ginkgo |
| 1115 | + |
1082 | 1116 | $(CONTROLLER_GEN): # Build controller-gen from tools folder.
|
1083 | 1117 | GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(CONTROLLER_GEN_PKG) $(CONTROLLER_GEN_BIN) $(CONTROLLER_GEN_VER)
|
1084 | 1118 |
|
@@ -1128,3 +1162,56 @@ $(GOLANGCI_LINT): .github/workflows/golangci-lint.yml # Download golangci-lint u
|
1128 | 1162 | hack/ensure-golangci-lint.sh \
|
1129 | 1163 | -b $(TOOLS_BIN_DIR) \
|
1130 | 1164 | $(shell cat .github/workflows/golangci-lint.yml | grep [[:space:]]version | sed 's/.*version: //')
|
| 1165 | + |
| 1166 | +$(GINKGO): # Build ginkgo from tools folder. |
| 1167 | + GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(GINKGO_PKG) $(GINKGO_BIN) $(GINGKO_VER) |
| 1168 | + |
| 1169 | + |
| 1170 | +## -------------------------------------- |
| 1171 | +## Templates |
| 1172 | +## -------------------------------------- |
| 1173 | +DOCKER_TEMPLATES := test/e2e/data/infrastructure-docker |
| 1174 | + |
| 1175 | +.PHONY: generate-e2e-templates |
| 1176 | +generate-e2e-templates: $(KUSTOMIZE) generate-e2e-templates-v1alpha3 generate-e2e-templates-v1alpha4 generate-e2e-templates-v1.2 generate-e2e-templates-v1beta1 ## Generate cluster templates for all versions |
| 1177 | + |
| 1178 | +generate-e2e-templates-v1alpha3: $(KUSTOMIZE) |
| 1179 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha3/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha3/cluster-template.yaml |
| 1180 | + |
| 1181 | +generate-e2e-templates-v1alpha4: $(KUSTOMIZE) |
| 1182 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template.yaml |
| 1183 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-md-remediation --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-md-remediation.yaml |
| 1184 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-remediation --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-remediation.yaml |
| 1185 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-adoption/step1 --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-adoption.yaml |
| 1186 | + echo "---" >> $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-adoption.yaml |
| 1187 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-adoption/step2 --load-restrictor LoadRestrictionsNone >> $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-adoption.yaml |
| 1188 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-machine-pool --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-machine-pool.yaml |
| 1189 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-node-drain --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-node-drain.yaml |
| 1190 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-upgrades --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-upgrades.yaml |
| 1191 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-scale-in --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-kcp-scale-in.yaml |
| 1192 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-ipv6 --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1alpha4/cluster-template-ipv6.yaml |
| 1193 | + |
| 1194 | +generate-e2e-templates-v1.2: $(KUSTOMIZE) |
| 1195 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/v1.2/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/v1.2/cluster-template.yaml |
| 1196 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/v1.2/cluster-template-topology --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/v1.2/cluster-template-topology.yaml |
| 1197 | + |
| 1198 | +generate-e2e-templates-v1beta1: $(KUSTOMIZE) |
| 1199 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template.yaml |
| 1200 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-md-remediation --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-md-remediation.yaml |
| 1201 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-remediation --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-remediation.yaml |
| 1202 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-adoption/step1 --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-adoption.yaml |
| 1203 | + echo "---" >> $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-adoption.yaml |
| 1204 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-adoption/step2 --load-restrictor LoadRestrictionsNone >> $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-adoption.yaml |
| 1205 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-machine-pool --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-machine-pool.yaml |
| 1206 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-node-drain --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-node-drain.yaml |
| 1207 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-upgrades --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-upgrades.yaml |
| 1208 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-upgrades-cgroupfs --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-upgrades-cgroupfs.yaml |
| 1209 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-upgrades-runtimesdk --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-upgrades-runtimesdk.yaml |
| 1210 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-scale-in --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-kcp-scale-in.yaml |
| 1211 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-ipv6 --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-ipv6.yaml |
| 1212 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-topology --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-topology.yaml |
| 1213 | + $(KUSTOMIZE) build $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-ignition --load-restrictor LoadRestrictionsNone > $(DOCKER_TEMPLATES)/v1beta1/main/cluster-template-ignition.yaml |
| 1214 | + |
| 1215 | +generate-test-extension-deployment: $(KUSTOMIZE) |
| 1216 | + mkdir -p test/e2e/data/test-extension |
| 1217 | + $(KUSTOMIZE) build test/extension/config/default > test/e2e/data/test-extension/deployment.yaml |
0 commit comments