Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1260,3 +1260,5 @@ get-dependency-version:
.PHONY: _update-all
_update-all:
@(cd hack && go run update/update_all/update_all.go)

include tests/e2e/e2e.mk
10 changes: 10 additions & 0 deletions tests/e2e/conformance.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
OS=$(go env GOOS)
ARCH=$(go env GOARCH)
REPO_ROOT="$(git rev-parse --show-toplevel)"
Copy link
Member Author

@upodroid upodroid Sep 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This script replaces https://github.com/kubernetes/minikube/blob/master/hack/conformance_tests.sh and we'll add minikube conformance(HEAD + supported branches) jobs to the main conformance board on testgrid at https://testgrid.k8s.io/conformance

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you ! btw I am curious does this has to be shell script ? does prow accept go scripts ?

we try to convert as much as scripts to golang as possible

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make # build the binary first
LATEST_RELEASE=$(curl -sSfL https://dl.k8s.io/release/stable.txt)
"${REPO_ROOT}"/out/minikube start --nodes=2 --driver=docker --cpus=no-limit --memory=no-limit --force --kubernetes-version=$LATEST_RELEASE

kubetest2-tester-ginkgo --test-package-marker stable.txt \
--focus-regex='\[Conformance\]'
12 changes: 12 additions & 0 deletions tests/e2e/e2e.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
GOOS ?= $(shell go env GOOS)
GOARCH ?= $(shell go env GOARCH)

.PHONY: minikube-e2e-fast
minikube-e2e-fast:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to avoid confusion how about name this folder test/conformance

since we already have test/integration that we also call it e2e
and we have "functional test" and "smoke test"

so I suggest using a name that makes it not overlap with others

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking of splitting the tests like this:

https://github.com/kubernetes/kops/tree/master/tests

  • integration is getting a successful minikube cluster up and running on all the permutations of arch/os/driver. Its purely specific to minikube
  • e2e test is running the kubernetes test suite on a combination of minikube setups with various kubernetes versions
    • minikube defaults with conformance + fast suite
    • different CNI/Addons/hardware combinations against the fast suite
  • smoke test which is compile minikube + launch it on docker, a base test scenario that runs on presubmits all the time

I looked at common.sh and that harness can't be used in Prow. https://github.com/kubernetes/minikube/tree/master/hack/jenkins This needs to be removed entirely so lets start it from scratch using the sig-testing toolchain.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we call our integration tests e2e in makefiles

.PHONY: e2e-linux-amd64 e2e-linux-arm64 e2e-darwin-amd64 e2e-darwin-arm64 e2e-windows-amd64.exe

the e2e integration tests does also include testing different kubernetes versions. but I do like having , so for not making more confusing I suggest limiting this test to only confromacne test

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can name the folder anything else and it would be better
for example
conformance, kubetest-e2e, ginkgo-e2e...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we call our integration tests e2e in makefiles

.PHONY: e2e-linux-amd64 e2e-linux-arm64 e2e-darwin-amd64 e2e-darwin-arm64 e2e-windows-amd64.exe

the e2e integration tests does also include testing different kubernetes versions. but I do like having , so for not making more confusing I suggest limiting this test to only confromacne test

I looked at the tests defined at #21607 (comment) and they are not kubernetes e2e tests. The kubernetes e2e tests are defined over here. Minikube needs to run these tests to verify kubernetes functionality. The default minikube config is already failing the simple e2e scenario we run.

./tests/e2e/fast.sh

minikube-e2e-conformance:
./tests/e2e/conformance.sh

integration-kvm-prow: #temp for prow
./tests/e2e/fast.sh
11 changes: 11 additions & 0 deletions tests/e2e/fast.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
OS=$(go env GOOS)
ARCH=$(go env GOARCH)
REPO_ROOT="$(git rev-parse --show-toplevel)"
make # build the binary first
LATEST_RELEASE=$(curl -sSfL https://dl.k8s.io/release/stable.txt)
"${REPO_ROOT}"/out/minikube start --nodes=2 --driver=docker --cpus=no-limit --memory=no-limit --force --kubernetes-version=$LATEST_RELEASE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are two nodes required for this test "kubetest2-tester-ginkgo " ?if yes please comment.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the default cluster size for testing is 1 control plane node and 3 worker nodes. 2 workers for kind e2e tests

https://testgrid.k8s.io/sig-release-master-blocking#kind-master
https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-default


kubetest2-tester-ginkgo --test-package-marker stable.txt \
--parallel=30 \
--skip-regex='\[Driver:.gcepd\]|\[Slow\]|\[Serial\]|\[Disruptive\]|\[Flaky\]|\[Feature:.+\]'
Loading