Skip to content
This repository was archived by the owner on Aug 12, 2025. It is now read-only.

Commit 03b3f27

Browse files
authored
Merge pull request #561 from cprivitere/update-e2e-harness
🐛 Update-e2e-harness
2 parents 8318c64 + 132eade commit 03b3f27

File tree

6 files changed

+58
-38
lines changed

6 files changed

+58
-38
lines changed

.github/workflows/ci.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ jobs:
312312
name: e2e-conformance
313313
path: _artifacts
314314
e2e-management-upgrade:
315-
name: "E2E management upgrade"
315+
name: "E2E Management-Upgrade"
316316
concurrency: ci-${{ github.ref }}-e2e-management-upgrade
317317
runs-on: ubuntu-latest
318318
needs:
@@ -368,7 +368,7 @@ jobs:
368368
name: e2e-management-upgrade
369369
path: _artifacts
370370
e2e-workload-upgrade:
371-
name: "E2E workload upgrade"
371+
name: "E2E Workload-Upgrade"
372372
concurrency: ci-${{ github.ref }}-e2e-workload-upgrade
373373
runs-on: ubuntu-latest
374374
needs:

Makefile

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,21 @@ export DOCKER_CLI_EXPERIMENTAL := enabled
4242
CURL_RETRIES=3
4343

4444
# Directories.
45+
#
46+
# Full directory of where the Makefile resides
4547
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
48+
EXP_DIR := exp
49+
BIN_DIR := bin
50+
TEST_DIR := test
4651
TOOLS_DIR := hack/tools
47-
TOOLS_BIN_DIR := $(abspath $(TOOLS_DIR)/bin)
48-
PATH := $(TOOLS_BIN_DIR):$(PATH)
49-
BIN_DIR := $(abspath $(ROOT_DIR)/bin)
50-
GO_INSTALL = ./scripts/go_install.sh
52+
TOOLS_BIN_DIR := $(abspath $(TOOLS_DIR)/$(BIN_DIR))
53+
E2E_FRAMEWORK_DIR := $(TEST_DIR)/framework
54+
CAPD_DIR := $(TEST_DIR)/infrastructure/docker
55+
TEST_EXTENSION_DIR := $(TEST_DIR)/extension
56+
GO_INSTALL := ./scripts/go_install.sh
57+
OBSERVABILITY_DIR := hack/observability
58+
59+
export PATH := $(abspath $(TOOLS_BIN_DIR)):$(PATH)
5160

5261
REPO_ROOT := $(shell git rev-parse --show-toplevel)
5362
# Set --output-base for conversion-gen if we are not within GOPATH
@@ -88,7 +97,8 @@ KUSTOMIZE := $(TOOLS_BIN_DIR)/$(KUSTOMIZE_BIN)-$(KUSTOMIZE_VER)
8897
# Sync to github.com/onsi/ginkgo verison in https://github.com/kubernetes-sigs/cluster-api/blob/v{VERSION}/go.mod
8998
GINKGO_VER := v2.6.0
9099
GINKGO_BIN := ginkgo
91-
GINKGO := $(TOOLS_BIN_DIR)/$(GINKGO_BIN)-$(GINKGO_VER)
100+
GINKGO := $(abspath $(TOOLS_BIN_DIR)/$(GINKGO_BIN)-$(GINKGO_VER))
101+
GINKGO_PKG := github.com/onsi/ginkgo/v2/ginkgo
92102

93103
TIMEOUT := $(shell command -v timeout || command -v gtimeout)
94104

@@ -136,19 +146,31 @@ help: ## Display this help
136146
test: ## Run tests
137147
source ./scripts/fetch_ext_bins.sh; fetch_tools; setup_envs; go test -v ./... -coverprofile cover.out
138148

139-
# Allow overriding the e2e configurations
149+
#
150+
# Ginkgo configuration.
151+
#
152+
GINKGO_FOCUS ?=
153+
GINKGO_SKIP ?=
140154
GINKGO_NODES ?= 1
155+
GINKGO_TIMEOUT ?= 6h
156+
GINKGO_POLL_PROGRESS_AFTER ?= 60m
157+
GINKGO_POLL_PROGRESS_INTERVAL ?= 5m
158+
E2E_CONF_FILE ?= $(ROOT_DIR)/$(TEST_DIR)/e2e/config/packet-ci-envsubst.yaml
159+
SKIP_RESOURCE_CLEANUP ?= false
160+
USE_EXISTING_CLUSTER ?= false
141161
GINKGO_NOCOLOR ?= false
142-
GINKGO_FOCUS ?= ""
143-
GINKGO_SKIP ?= ""
144-
GINKGO_FLAKE_ATTEMPTS ?= 2
162+
163+
# to set multiple ginkgo skip flags, if any
164+
ifneq ($(strip $(GINKGO_SKIP)),)
165+
_SKIP_ARGS := $(foreach arg,$(strip $(GINKGO_SKIP)),--skip="$(arg)")
166+
endif
167+
168+
# Additinal GINKGO overrides
169+
GINKGO_FLAKE_ATTEMPTS ?= 0
170+
E2E_CONF_FILE_SOURCE ?= $(ROOT_DIR)/$(TEST_DIR)/e2e/config/packet-ci.yaml
171+
SKIP_IMAGE_BUILD ?= false
172+
145173
ARTIFACTS ?= $(ROOT_DIR)/_artifacts
146-
SKIP_CLEANUP ?= false
147-
SKIP_CREATE_MGMT_CLUSTER ?= false
148-
E2E_DIR ?= $(REPO_ROOT)/test/e2e
149-
KUBETEST_CONF_PATH ?= $(abspath $(E2E_DIR)/data/kubetest/conformance.yaml)
150-
E2E_CONF_FILE_SOURCE ?= $(E2E_DIR)/config/packet-ci.yaml
151-
E2E_CONF_FILE ?= $(E2E_DIR)/config/packet-ci-envsubst.yaml
152174

153175
.PHONY: $(E2E_CONF_FILE)
154176
$(E2E_CONF_FILE): $(ENVSUBST) $(E2E_CONF_FILE_SOURCE)
@@ -159,40 +181,38 @@ $(E2E_CONF_FILE): $(ENVSUBST) $(E2E_CONF_FILE_SOURCE)
159181
run-e2e-tests: $(KUSTOMIZE) $(GINKGO) $(E2E_CONF_FILE) e2e-test-templates $(if $(SKIP_IMAGE_BUILD),,e2e-image) ## Run the e2e tests
160182
$(MAKE) set-manifest-image MANIFEST_IMG=$(REGISTRY)/$(IMAGE_NAME) MANIFEST_TAG=$(TAG)
161183
$(MAKE) set-manifest-pull-policy PULL_POLICY=IfNotPresent
162-
cd test/e2e; time $(GINKGO) -v --trace --tags=e2e \
163-
--randomize-all -race $(GINKGO_ADDITIONAL_ARGS) \
164-
--focus=$(GINKGO_FOCUS) --skip=$(GINKGO_SKIP) \
165-
--nodes=$(GINKGO_NODES) --no-color=$(GINKGO_NOCOLOR) \
166-
--output-dir="$(ARTIFACTS)" --junit-report="junit.e2e_suite.1.xml" \
167-
--flake-attempts=$(GINKGO_FLAKE_ATTEMPTS) ./ -- \
184+
$(GINKGO) -v --trace --poll-progress-after=$(GINKGO_POLL_PROGRESS_AFTER) \
185+
--poll-progress-interval=$(GINKGO_POLL_PROGRESS_INTERVAL) --tags=e2e --focus="$(GINKGO_FOCUS)" \
186+
$(_SKIP_ARGS) --nodes=$(GINKGO_NODES) --timeout=$(GINKGO_TIMEOUT) --no-color=$(GINKGO_NOCOLOR) \
187+
--flake-attempts=$(GINKGO_FLAKE_ATTEMPTS) \
188+
--output-dir="$(ARTIFACTS)" --junit-report="junit.e2e_suite.1.xml" $(GINKGO_ARGS) $(ROOT_DIR)/$(TEST_DIR)/e2e -- \
168189
-e2e.artifacts-folder="$(ARTIFACTS)" \
169190
-e2e.config="$(E2E_CONF_FILE)" \
170-
-e2e.skip-resource-cleanup=$(SKIP_CLEANUP) \
171-
-e2e.use-existing-cluster=$(SKIP_CREATE_MGMT_CLUSTER)
191+
-e2e.skip-resource-cleanup=$(SKIP_RESOURCE_CLEANUP) -e2e.use-existing-cluster=$(USE_EXISTING_CLUSTER)
172192

173193
.PHONY: test-e2e-conformance
174194
test-e2e-conformance:
175195
$(MAKE) run-e2e-tests GINKGO_FOCUS="'\[Conformance\]'"
176196

177197
.PHONY: test-e2e-management-upgrade
178198
test-e2e-management-upgrade:
179-
$(MAKE) run-e2e-tests GINKGO_FOCUS="'\[Management Upgrade\]'"
199+
$(MAKE) run-e2e-tests GINKGO_FOCUS="'\[Management-Upgrade\]'"
180200

181201
.PHONY: test-e2e-workload-upgrade
182202
test-e2e-workload-upgrade:
183-
$(MAKE) run-e2e-tests GINKGO_FOCUS="'\[Workload Upgrade\]'"
203+
$(MAKE) run-e2e-tests GINKGO_FOCUS="'\[Workload-Upgrade\]'"
184204

185205
.PHONY: test-e2e-quickstart
186206
test-e2e-quickstart:
187207
$(MAKE) run-e2e-tests GINKGO_FOCUS="'\[QuickStart\]'"
188208

189209
.PHONY: test-e2e-local
190210
test-e2e-local:
191-
$(MAKE) run-e2e-tests GINKGO_SKIP="'\[QuickStart\]|\[Conformance\]|\[Needs Published Image\]|\[Management Upgrade\]|\[Workload Upgrade\]'"
211+
$(MAKE) run-e2e-tests GINKGO_SKIP="'\[QuickStart\]|\[Conformance\]|\[Needs-Published-Image\]|\[Management-Upgrade\]|\[Workload-Upgrade\]'"
192212

193213
.PHONY: test-e2e-ci
194214
test-e2e-ci:
195-
$(MAKE) run-e2e-tests GINKGO_SKIP="'\[QuickStart\]|\[Conformance\]|\[Management Upgrade\]|\[Workload Upgrade\]'"
215+
$(MAKE) run-e2e-tests GINKGO_SKIP="'\[QuickStart\]|\[Conformance\]|\[Management-Upgrade\]|\[Workload-Upgrade\]'"
196216

197217
## --------------------------------------
198218
## E2E Test Templates
@@ -241,8 +261,8 @@ $(CONTROLLER_GEN): ## Build controller-gen from tools folder.
241261
$(CONVERSION_GEN): ## Build conversion-gen.
242262
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) k8s.io/code-generator/cmd/conversion-gen $(CONVERSION_GEN_BIN) $(CONVERSION_GEN_VER)
243263

244-
$(GINKGO): ## Build ginkgo.
245-
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) github.com/onsi/ginkgo/v2/ginkgo $(GINKGO_BIN) $(GINKGO_VER)
264+
$(GINKGO): # Build ginkgo from tools folder.
265+
GOBIN=$(TOOLS_BIN_DIR) $(GO_INSTALL) $(GINKGO_PKG) $(GINKGO_BIN) $(GINKGO_VER)
246266

247267
## --------------------------------------
248268
## Linting

scripts/go_install.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
# Copyright 2020 The Kubernetes Authors.
2+
# Copyright 2021 The Kubernetes Authors.
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
@@ -37,7 +37,7 @@ if [ -z "${GOBIN}" ]; then
3737
exit 1
3838
fi
3939

40-
rm "${GOBIN}/${2}"* || true
40+
rm -f "${GOBIN}/${2}"* || true
4141

4242
# install the golang module specified as the first argument
4343
go install "${1}@${3}"

test/e2e/capi_e2e_clusterctl_upgrade_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ import (
2626
capi_e2e "sigs.k8s.io/cluster-api/test/e2e"
2727
)
2828

29-
var _ = Describe("[Management Upgrade] Running the Cluster API E2E tests", func() {
29+
var _ = Describe("[Management-Upgrade] Running the Cluster API E2E tests", func() {
3030
ctx := context.TODO()
3131

32-
Context("[Needs Published Image] Running tests that require published images", func() {
32+
Context("[Needs-Published-Image] Running tests that require published images", func() {
3333
Context("Running the clusterctl upgrade spec on a cluster with packet-ccm", func() {
3434
capi_e2e.ClusterctlUpgradeSpec(ctx, func() capi_e2e.ClusterctlUpgradeSpecInput {
3535
return capi_e2e.ClusterctlUpgradeSpecInput{

test/e2e/capi_e2e_self_hosted_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ import (
2626
capi_e2e "sigs.k8s.io/cluster-api/test/e2e"
2727
)
2828

29-
var _ = Describe("[Self Hosted] Running the Cluster API E2E self-hosted tests", func() {
29+
var _ = Describe("[Self-Hosted] Running the Cluster API E2E self-hosted tests", func() {
3030
ctx := context.TODO()
3131

32-
Context("[Needs Published Image] Running tests that require published images", func() {
32+
Context("[Needs-Published-Image] Running tests that require published images", func() {
3333
Context("Running the self-hosted spec", func() {
3434
capi_e2e.SelfHostedSpec(ctx, func() capi_e2e.SelfHostedSpecInput {
3535
return capi_e2e.SelfHostedSpecInput{

test/e2e/capi_e2e_workload_upgrade_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
"sigs.k8s.io/cluster-api/test/framework/clusterctl"
2929
)
3030

31-
var _ = Describe("[Workload Upgrade] Running the Cluster API E2E Workload Cluster Upgrade tests", func() {
31+
var _ = Describe("[Workload-Upgrade] Running the Cluster API E2E Workload Cluster Upgrade tests", func() {
3232
ctx := context.TODO()
3333

3434
// The following upstream tests are not implemented because they are subsets of

0 commit comments

Comments
 (0)