kubernetes/test/e2e
Patrick Ohly 6489fe467c DRA E2E: simplify kind.yaml
Runtime config can be set via the kind config, which is simpler than setting
the apiserver parameter.

DynamicResourceAllocation is enabled by default nowadays, but still needs to be
set for the current n-3 skew testing which picks 1.33 (1.37 still in alpha).
Similar for NodeLogQuery (GA in 1.36).
2026-06-03 10:06:59 +02:00
..
apimachinery Merge pull request #136817 from kairosci/fix-gc-notfound-136525 2026-03-11 03:53:09 +05:30
apps remove accidently commited file 2026-04-04 12:53:30 +05:30
architecture add bentheelder to conformance related test *reviewers* 2025-06-10 20:09:57 -07:00
auth Fix the NodeAuthenticator e2e tests 2026-02-19 07:22:21 -05:00
autoscaling Merge pull request #137612 from bishal7679/fix/hpa-configurable-tolerance-e2e-deterministic-cpu-load 2026-03-21 23:28:17 +05:30
chaosmonkey test: refactor to use atomic types 2026-02-05 20:19:33 +05:30
cloud Lint: Use modernize/rangeint in test/{e2e,e2e_node,images,soak} 2026-03-07 10:17:31 +01:00
common Simplify isPodLevelResourcesResizeInProgress to check for absence of actuated resources 2026-03-27 23:03:20 +00:00
dra DRA E2E: simplify kind.yaml 2026-06-03 10:06:59 +02:00
environment Ensure all the files have the updated sorting 2025-06-27 11:13:50 -04:00
feature Merge pull request #137544 from jrvaldes/upstream/1.36-nodelogquery-lock-defualt 2026-03-21 22:16:14 +05:30
framework Merge pull request #137612 from bishal7679/fix/hpa-configurable-tolerance-e2e-deterministic-cpu-load 2026-03-21 23:28:17 +05:30
instrumentation feat: Add matcher and conformance tests ensuring that RV is uint128 2025-10-01 00:01:50 +00:00
invariants Use HTTP GET for Node log queries in e2e logcheck 2026-03-05 16:38:24 -06:00
kubectl Lint: Use modernize/rangeint in test/{e2e,e2e_node,images,soak} 2026-03-07 10:17:31 +01:00
lifecycle add HirazawaUi to kubeadm approvers list 2025-05-08 21:15:24 +08:00
network Merge pull request #137535 from danwinship/nodeip-e2e-cleanups 2026-03-10 02:59:19 +05:30
node Merge pull request #137749 from dims/dsrinivas/issue-135713-pod-status-exit-2 2026-03-21 23:28:24 +05:30
perftype
reporters
scheduling test: Fix PodGroup CRUD test failing due to missing Workload reference 2026-03-19 15:36:38 -04:00
storage update resize e2e tests to check only resize conditions 2026-03-18 17:08:11 -04:00
testing-manifests DRA: use full image name in test manifests 2026-04-10 17:10:40 +02:00
upgrades chore(test/autoscaling): replace RC with ReplicaSet and update deprecated API versions in HPA e2e 2026-02-17 14:01:02 +03:00
windows Merge pull request #137535 from danwinship/nodeip-e2e-cleanups 2026-03-10 02:59:19 +05:30
e2e-example-config.json
e2e.go Drop NodeKiller 2026-02-21 08:30:04 -05:00
e2e_test.go E2E logcheck: move to "invariants" directory 2026-01-19 16:25:49 +01:00
providers.go Remove gcp in-tree cloud provider and credential provider 2024-05-01 09:03:53 -04:00
README.md e2e: use framework labels 2023-11-01 15:17:34 +01:00
suites.go Drop NodeKiller 2026-02-21 08:30:04 -05:00

test/e2e

This is home to e2e tests used for presubmit, periodic, and postsubmit jobs.

Some of these jobs are merge-blocking, some are release-blocking.

e2e test ownership

All e2e tests must adhere to the following policies:

  • the test must be owned by one and only one SIG
  • the test must live in/underneath a sig-owned package matching pattern: test/e2e/[{subpath}/]{sig}/..., e.g.
    • test/e2e/auth - all tests owned by sig-auth
    • test/e2e/common/storage - all tests common to cluster-level and node-level e2e tests, owned by sig-node
    • test/e2e/upgrade/apps - all tests used in upgrade testing, owned by sig-apps
  • each sig-owned package should have an OWNERS file defining relevant approvers and labels for the owning sig, e.g.
# test/e2e/node/OWNERS
# See the OWNERS docs at https://go.k8s.io/owners

approvers:
- alice
- bob
- cynthia
emeritus_approvers:
- dave
reviewers:
- sig-node-reviewers
labels:
- sig/node
  • packages that use {subpath} should have an imports.go file importing sig-owned packages (for ginkgo's benefit), e.g.
// test/e2e/common/imports.go
package common

import (
	// ensure these packages are scanned by ginkgo for e2e tests
	_ "k8s.io/kubernetes/test/e2e/common/network"
	_ "k8s.io/kubernetes/test/e2e/common/node"
	_ "k8s.io/kubernetes/test/e2e/common/storage"
)
  • test ownership must be declared via a top-level SIGDescribe call defined in the sig-owned package, e.g.
// test/e2e/lifecycle/framework.go
package lifecycle

import "k8s.io/kubernetes/test/e2e/framework"

// SIGDescribe annotates the test with the SIG label.
var SIGDescribe = framework.SIGDescribe("cluster-lifecycle")
// test/e2e/lifecycle/bootstrap/bootstrap_signer.go

package bootstrap

import (
	"github.com/onsi/ginkgo"
	"k8s.io/kubernetes/test/e2e/lifecycle"
)
var _ = lifecycle.SIGDescribe("cluster", feature.BootstrapTokens, func() {
  /* ... */
  ginkgo.It("should sign the new added bootstrap tokens", func(ctx context.Context) {
    /* ... */
  })
  /* etc */
})

These polices are enforced:

  • via the merge-blocking presubmit job pull-kubernetes-verify
  • which ends up running hack/verify-e2e-test-ownership.sh
  • which can also be run via make verify WHAT=e2e-test-ownership

more info

See kubernetes/community/.../e2e-tests.md