Skip to content

Commit 5540a4c

Browse files
authored
Merge pull request #2428 from faganihajizada/feature/helm-e2e-tests
Add Helm e2e tests for chart deployment verification
2 parents 9df73fe + 1198c48 commit 5540a4c

7 files changed

Lines changed: 653 additions & 7 deletions

File tree

Makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: all test templates yamls build build-%
1+
.PHONY: all test templates yamls build build-% install-crds
22
.FORCE:
33

44
GO_CMD ?= go
@@ -219,8 +219,12 @@ test:
219219
GOTOOLCHAIN=${TOOOLCHAIN_MODE} $(GO_CMD) test -covermode=atomic -coverprofile=coverage.out ./cmd/... ./pkg/... ./source/...
220220
cd api/nfd && GOTOOLCHAIN=${TOOOLCHAIN_MODE} $(GO_CMD) test -covermode=atomic -coverprofile=coverage.out ./...
221221

222+
install-crds:
223+
@if [ ! -f "${KUBECONFIG}" ]; then echo "[ERR] KUBECONFIG file not found: ${KUBECONFIG}"; exit 1; fi
224+
kubectl apply -f deployment/base/nfd-crds/nfd-api-crds.yaml
225+
222226
e2e-test:
223-
@if [ -z ${KUBECONFIG} ]; then echo "[ERR] KUBECONFIG missing, must be defined"; exit 1; fi
227+
@if [ ! -f "${KUBECONFIG}" ]; then echo "[ERR] KUBECONFIG file not found: ${KUBECONFIG}"; exit 1; fi
224228
$(GO_CMD) test -timeout=1h -v ./test/e2e/ -args \
225229
-nfd.repo=$(IMAGE_REPO) -nfd.tag=$(IMAGE_TAG_NAME) \
226230
-kubeconfig=$(KUBECONFIG) \

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ require (
3636
k8s.io/pod-security-admission v0.35.0
3737
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
3838
oras.land/oras-go/v2 v2.6.0
39+
sigs.k8s.io/e2e-framework v0.4.0
3940
sigs.k8s.io/node-feature-discovery/api/nfd v0.0.0-00010101000000-000000000000
4041
sigs.k8s.io/yaml v1.6.0
4142
)
@@ -143,6 +144,7 @@ require (
143144
github.com/stretchr/objx v0.5.2 // indirect
144145
github.com/subosito/gotenv v1.6.0 // indirect
145146
github.com/vektra/mockery/v2 v2.52.2 // indirect
147+
github.com/vladimirvivien/gexe v0.2.0 // indirect
146148
github.com/x448/float16 v0.8.4 // indirect
147149
github.com/yusufpapurcu/wmi v1.2.4 // indirect
148150
go.etcd.io/etcd/api/v3 v3.6.5 // indirect

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,8 @@ github.com/vektra/errors v0.0.0-20140903201135-c64d83aba85a h1:lUVfiMMY/te9icPKB
356356
github.com/vektra/errors v0.0.0-20140903201135-c64d83aba85a/go.mod h1:KUxJS71XlMs+ztT+RzsLRoWUQRUpECo/+Rb0EBk8/Wc=
357357
github.com/vektra/mockery/v2 v2.52.2 h1:8QfPKUIrq8P3Cs7G79Iu4Byd5wdhGCE0quIS27x7rQo=
358358
github.com/vektra/mockery/v2 v2.52.2/go.mod h1:zGDY/f6bip0Yh13GQ5j7xa43fuEoYBa4ICHEaihisHw=
359+
github.com/vladimirvivien/gexe v0.2.0 h1:nbdAQ6vbZ+ZNsolCgSVb9Fno60kzSuvtzVh6Ytqi/xY=
360+
github.com/vladimirvivien/gexe v0.2.0/go.mod h1:LHQL00w/7gDUKIak24n801ABp8C+ni6eBht9vGVst8w=
359361
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
360362
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
361363
github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 h1:S2dVYn90KE98chqDkyE9Z4N61UnQd+KOfgp5Iu53llk=
@@ -554,6 +556,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUo
554556
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
555557
sigs.k8s.io/controller-tools v0.16.3 h1:z48C5/d4jCVQQvtiSBL5MYyZ3EO2eFIOXrIKMgHVhFY=
556558
sigs.k8s.io/controller-tools v0.16.3/go.mod h1:AEj6k+w1kYpLZv2einOH3mj52ips4W/6FUjnB5tkJGs=
559+
sigs.k8s.io/e2e-framework v0.4.0 h1:4yYmFDNNoTnazqmZJXQ6dlQF1vrnDbutmxlyvBpC5rY=
560+
sigs.k8s.io/e2e-framework v0.4.0/go.mod h1:JilFQPF1OL1728ABhMlf9huse7h+uBJDXl9YeTs49A8=
557561
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg=
558562
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
559563
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=

scripts/test-infra/push-image.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#!/bin/bash -e
22

3+
# Tool versions
4+
HELM_VERSION="v3.17.3"
5+
ORAS_VERSION="v1.2.3"
6+
37
# Override VERSION if _GIT_TAG is specified. Strip 10 first characters
48
# ('vYYYYMMDD-') from _GIT_TAG in order to get a reproducible version and
59
# container image tag
@@ -15,7 +19,7 @@ gcloud auth configure-docker
1519
# Build and push images
1620
IMAGE_ALL_PLATFORMS=linux/amd64,linux/arm64,linux/s390x,linux/ppc64le make push-all $MAKE_VARS
1721

18-
go install helm.sh/helm/v3/cmd/helm@v3.17.3
19-
go install oras.land/oras/cmd/oras@v1.2.3
22+
go install helm.sh/helm/v3/cmd/helm@$HELM_VERSION
23+
go install oras.land/oras/cmd/oras@$ORAS_VERSION
2024

2125
make helm-push $VERSION_OVERRIDE $MAKE_VARS

scripts/test-infra/test-e2e-presubmit.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ set -o pipefail
33

44
# Configure environment
55
export KIND_VERSION="v0.23.0"
6+
export HELM_VERSION="v3.17.3"
67
export KIND_NODE_IMAGE="kindest/node:v1.30.2"
78
export CLUSTER_NAME="nfd-e2e"
89
export KUBECONFIG="/tmp/kubeconfig_$CLUSTER_NAME"
@@ -12,6 +13,9 @@ export IMAGE_TAG_NAME=$(git describe --tags --dirty --always --match "v*")
1213
# Install kind
1314
go install sigs.k8s.io/kind@$KIND_VERSION
1415

16+
# Install helm (required for helm e2e tests)
17+
curl -sfL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash -s -- --version $HELM_VERSION
18+
1519
# create a cluster with the local registry enabled in containerd
1620
cat <<EOF | kind create cluster --kubeconfig $KUBECONFIG --image $KIND_NODE_IMAGE --config=-
1721
kind: Cluster

scripts/test-infra/verify.sh

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,20 @@
22

33
this_dir=`dirname $0`
44

5+
# Tool versions
6+
GOLANGCI_LINT_VERSION="v2.4.0"
7+
HELM_VERSION="v3.17.3"
8+
KUBECTL_VERSION="v1.22.1"
9+
510
# Install deps
611
gobinpath="$(go env GOPATH)/bin"
7-
curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b "$gobinpath" v2.4.0
12+
curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b "$gobinpath" $GOLANGCI_LINT_VERSION
813
export PATH=$PATH:$(go env GOPATH)/bin
914

10-
curl -sfL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash -s -- --version v3.15.3
15+
curl -sfL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash -s -- --version $HELM_VERSION
1116

1217
kubectl="$gobinpath/kubectl"
13-
curl -L https://dl.k8s.io/release/v1.22.1/bin/linux/amd64/kubectl -o "$kubectl"
18+
curl -L https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl -o "$kubectl"
1419
chmod 755 "$kubectl"
1520

1621
curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import

0 commit comments

Comments
 (0)