From 30965ea3ce6be2a910255f393860ba6dce3a730e Mon Sep 17 00:00:00 2001 From: Benjamin Elder Date: Wed, 5 Nov 2025 14:25:20 -0800 Subject: [PATCH 1/2] drop MinimumKubeletVersion for unsupported kubelet versions Versions 1.20, 1.21, 1.22, 1.23, 1.27 are all well out of support --- test/e2e/common/node/container_probe.go | 8 ++++---- test/e2e/common/node/lifecycle_hook.go | 8 ++++---- test/e2e/common/node/sysctl.go | 8 ++++---- test/e2e/storage/testsuites/readwriteoncepod.go | 2 +- test/e2e/windows/host_process.go | 2 +- test/e2e/windows/reboot_node.go | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/test/e2e/common/node/container_probe.go b/test/e2e/common/node/container_probe.go index 13d646d2e66..60053a49861 100644 --- a/test/e2e/common/node/container_probe.go +++ b/test/e2e/common/node/container_probe.go @@ -227,7 +227,7 @@ var _ = SIGDescribe("Probing container", func() { Testname: Pod liveness probe, container exec timeout, restart Description: A Pod is created with liveness probe with a Exec action on the Pod. If the liveness probe call does not return within the timeout specified, liveness probe MUST restart the Pod. */ - f.It("should be restarted with an exec liveness probe with timeout [MinimumKubeletVersion:1.20]", f.WithNodeConformance(), func(ctx context.Context) { + f.It("should be restarted with an exec liveness probe with timeout", f.WithNodeConformance(), func(ctx context.Context) { cmd := []string{"/bin/sh", "-c", "sleep 600"} livenessProbe := &v1.Probe{ ProbeHandler: execHandler([]string{"/bin/sh", "-c", "sleep 10"}), @@ -244,7 +244,7 @@ var _ = SIGDescribe("Probing container", func() { Testname: Pod readiness probe, container exec timeout, not ready Description: A Pod is created with readiness probe with a Exec action on the Pod. If the readiness probe call does not return within the timeout specified, readiness probe MUST not be Ready. */ - f.It("should not be ready with an exec readiness probe timeout [MinimumKubeletVersion:1.20]", f.WithNodeConformance(), func(ctx context.Context) { + f.It("should not be ready with an exec readiness probe timeout", f.WithNodeConformance(), func(ctx context.Context) { cmd := []string{"/bin/sh", "-c", "sleep 600"} readinessProbe := &v1.Probe{ ProbeHandler: execHandler([]string{"/bin/sh", "-c", "sleep 10"}), @@ -931,7 +931,7 @@ var _ = SIGDescribe(framework.WithNodeConformance(), framework.WithFeatureGate(f Pod. If the liveness probe call does not return within the timeout specified, liveness probe MUST restart the Pod. */ - ginkgo.It("should be restarted with an exec liveness probe with timeout [MinimumKubeletVersion:1.20]", func(ctx context.Context) { + ginkgo.It("should be restarted with an exec liveness probe with timeout", func(ctx context.Context) { cmd := []string{"/bin/sh", "-c", "sleep 600"} livenessProbe := &v1.Probe{ ProbeHandler: execHandler([]string{"/bin/sh", "-c", "sleep 10"}), @@ -950,7 +950,7 @@ var _ = SIGDescribe(framework.WithNodeConformance(), framework.WithFeatureGate(f the Pod. If the readiness probe call does not return within the timeout specified, readiness probe MUST not be Ready. */ - ginkgo.It("should not be ready with an exec readiness probe timeout [MinimumKubeletVersion:1.20]", func(ctx context.Context) { + ginkgo.It("should not be ready with an exec readiness probe timeout", func(ctx context.Context) { cmd := []string{"/bin/sh", "-c", "sleep 600"} readinessProbe := &v1.Probe{ ProbeHandler: execHandler([]string{"/bin/sh", "-c", "sleep 10"}), diff --git a/test/e2e/common/node/lifecycle_hook.go b/test/e2e/common/node/lifecycle_hook.go index 345f4c01865..a7a7d51c2c7 100644 --- a/test/e2e/common/node/lifecycle_hook.go +++ b/test/e2e/common/node/lifecycle_hook.go @@ -192,7 +192,7 @@ var _ = SIGDescribe("Container Lifecycle Hook", func() { Testname: Pod Lifecycle, poststart https hook Description: When a post-start handler is specified in the container lifecycle using a 'HttpGet' action, then the handler MUST be invoked before the container is terminated. A server pod is created that will serve https requests, create a second pod on the same node with a container lifecycle specifying a post-start that invokes the server pod to validate that the post-start is executed. */ - f.It("should execute poststart https hook properly [MinimumKubeletVersion:1.23]", f.WithNodeConformance(), func(ctx context.Context) { + f.It("should execute poststart https hook properly", f.WithNodeConformance(), func(ctx context.Context) { lifecycle := &v1.Lifecycle{ PostStart: &v1.LifecycleHandler{ HTTPGet: &v1.HTTPGetAction{ @@ -237,7 +237,7 @@ var _ = SIGDescribe("Container Lifecycle Hook", func() { Testname: Pod Lifecycle, prestop https hook Description: When a pre-stop handler is specified in the container lifecycle using a 'HttpGet' action, then the handler MUST be invoked before the container is terminated. A server pod is created that will serve https requests, create a second pod on the same node with a container lifecycle specifying a pre-stop that invokes the server pod to validate that the pre-stop is executed. */ - f.It("should execute prestop https hook properly [MinimumKubeletVersion:1.23]", f.WithNodeConformance(), func(ctx context.Context) { + f.It("should execute prestop https hook properly", f.WithNodeConformance(), func(ctx context.Context) { lifecycle := &v1.Lifecycle{ PreStop: &v1.LifecycleHandler{ HTTPGet: &v1.HTTPGetAction{ @@ -431,7 +431,7 @@ var _ = SIGDescribe(framework.WithNodeConformance(), framework.WithFeatureGate(f container lifecycle specifying a post-start that invokes the server pod to validate that the post-start is executed. */ - ginkgo.It("should execute poststart https hook properly [MinimumKubeletVersion:1.23]", func(ctx context.Context) { + ginkgo.It("should execute poststart https hook properly", func(ctx context.Context) { lifecycle := &v1.Lifecycle{ PostStart: &v1.LifecycleHandler{ HTTPGet: &v1.HTTPGetAction{ @@ -486,7 +486,7 @@ var _ = SIGDescribe(framework.WithNodeConformance(), framework.WithFeatureGate(f container lifecycle specifying a pre-stop that invokes the server pod to validate that the pre-stop is executed. */ - ginkgo.It("should execute prestop https hook properly [MinimumKubeletVersion:1.23]", func(ctx context.Context) { + ginkgo.It("should execute prestop https hook properly", func(ctx context.Context) { lifecycle := &v1.Lifecycle{ PreStop: &v1.LifecycleHandler{ HTTPGet: &v1.HTTPGetAction{ diff --git a/test/e2e/common/node/sysctl.go b/test/e2e/common/node/sysctl.go index eb721effe35..d9d1560080d 100644 --- a/test/e2e/common/node/sysctl.go +++ b/test/e2e/common/node/sysctl.go @@ -76,7 +76,7 @@ var _ = SIGDescribe("Sysctls [LinuxOnly]", framework.WithNodeConformance(), func [LinuxOnly]: This test is marked as LinuxOnly since Windows does not support sysctls [Environment:NotInUserNS]: The test fails in UserNS (as expected): `open /proc/sys/kernel/shm_rmid_forced: permission denied` */ - framework.ConformanceIt("should support sysctls [MinimumKubeletVersion:1.21]", environment.NotInUserNS, func(ctx context.Context) { + framework.ConformanceIt("should support sysctls", environment.NotInUserNS, func(ctx context.Context) { pod := testPod() pod.Spec.SecurityContext = &v1.PodSecurityContext{ Sysctls: []v1.Sysctl{ @@ -122,7 +122,7 @@ var _ = SIGDescribe("Sysctls [LinuxOnly]", framework.WithNodeConformance(), func Description: Pod is created with one valid and two invalid sysctls. Pod should not apply invalid sysctls. [LinuxOnly]: This test is marked as LinuxOnly since Windows does not support sysctls */ - framework.ConformanceIt("should reject invalid sysctls [MinimumKubeletVersion:1.21]", func(ctx context.Context) { + framework.ConformanceIt("should reject invalid sysctls", func(ctx context.Context) { pod := testPod() pod.Spec.SecurityContext = &v1.PodSecurityContext{ Sysctls: []v1.Sysctl{ @@ -159,7 +159,7 @@ var _ = SIGDescribe("Sysctls [LinuxOnly]", framework.WithNodeConformance(), func }) // Pod is created with kernel.msgmax, an unsafe sysctl. - ginkgo.It("should not launch unsafe, but not explicitly enabled sysctls on the node [MinimumKubeletVersion:1.21]", func(ctx context.Context) { + ginkgo.It("should not launch unsafe, but not explicitly enabled sysctls on the node", func(ctx context.Context) { pod := testPod() pod.Spec.SecurityContext = &v1.PodSecurityContext{ Sysctls: []v1.Sysctl{ @@ -186,7 +186,7 @@ var _ = SIGDescribe("Sysctls [LinuxOnly]", framework.WithNodeConformance(), func [LinuxOnly]: This test is marked as LinuxOnly since Windows does not support sysctls [Environment:NotInUserNS]: The test fails in UserNS (as expected): `open /proc/sys/kernel/shm_rmid_forced: permission denied` */ - f.It("should support sysctls with slashes as separator [MinimumKubeletVersion:1.23]", environment.NotInUserNS, func(ctx context.Context) { + f.It("should support sysctls with slashes as separator", environment.NotInUserNS, func(ctx context.Context) { pod := testPod() pod.Spec.SecurityContext = &v1.PodSecurityContext{ Sysctls: []v1.Sysctl{ diff --git a/test/e2e/storage/testsuites/readwriteoncepod.go b/test/e2e/storage/testsuites/readwriteoncepod.go index 1926ca3d742..4da623a267e 100644 --- a/test/e2e/storage/testsuites/readwriteoncepod.go +++ b/test/e2e/storage/testsuites/readwriteoncepod.go @@ -60,7 +60,7 @@ func InitCustomReadWriteOncePodTestSuite(patterns []storageframework.TestPattern tsInfo: storageframework.TestSuiteInfo{ Name: "read-write-once-pod", TestPatterns: patterns, - TestTags: []interface{}{framework.WithLabel("MinimumKubeletVersion:1.27")}, + TestTags: []interface{}{}, }, } } diff --git a/test/e2e/windows/host_process.go b/test/e2e/windows/host_process.go index 98a3c6c45c0..171e8f499a5 100644 --- a/test/e2e/windows/host_process.go +++ b/test/e2e/windows/host_process.go @@ -86,7 +86,7 @@ var ( User_NTAuthoritySystem = "NT AUTHORITY\\SYSTEM" ) -var _ = sigDescribe(feature.WindowsHostProcessContainers, "[MinimumKubeletVersion:1.22] HostProcess containers", skipUnlessWindows(func() { +var _ = sigDescribe(feature.WindowsHostProcessContainers, "HostProcess containers", skipUnlessWindows(func() { ginkgo.BeforeEach(func() { e2eskipper.SkipUnlessNodeOSDistroIs("windows") }) diff --git a/test/e2e/windows/reboot_node.go b/test/e2e/windows/reboot_node.go index fb5eafc74e6..c35fc65044d 100644 --- a/test/e2e/windows/reboot_node.go +++ b/test/e2e/windows/reboot_node.go @@ -44,7 +44,7 @@ import ( admissionapi "k8s.io/pod-security-admission/api" ) -var _ = sigDescribe(feature.Windows, "[Excluded:WindowsDocker] [MinimumKubeletVersion:1.22] RebootHost containers", framework.WithSerial(), framework.WithDisruptive(), framework.WithSlow(), skipUnlessWindows(func() { +var _ = sigDescribe(feature.Windows, "[Excluded:WindowsDocker] RebootHost containers", framework.WithSerial(), framework.WithDisruptive(), framework.WithSlow(), skipUnlessWindows(func() { ginkgo.BeforeEach(func() { e2eskipper.SkipUnlessNodeOSDistroIs("windows") }) From 481f30bd6459b2c51dec7eb7bd612807af946c8c Mon Sep 17 00:00:00 2001 From: Benjamin Elder Date: Wed, 5 Nov 2025 14:27:15 -0800 Subject: [PATCH 2/2] hack/update-conformance-yaml.sh --- test/conformance/testdata/conformance.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/conformance/testdata/conformance.yaml b/test/conformance/testdata/conformance.yaml index e468a4ab8a3..5194b83db59 100755 --- a/test/conformance/testdata/conformance.yaml +++ b/test/conformance/testdata/conformance.yaml @@ -2858,7 +2858,7 @@ file: test/e2e/common/node/security_context.go - testname: Sysctls, reject invalid sysctls codename: '[sig-node] Sysctls [LinuxOnly] [NodeConformance] should reject invalid - sysctls [MinimumKubeletVersion:1.21] [Conformance]' + sysctls [Conformance]' description: 'Pod is created with one valid and two invalid sysctls. Pod should not apply invalid sysctls. [LinuxOnly]: This test is marked as LinuxOnly since Windows does not support sysctls' @@ -2866,7 +2866,7 @@ file: test/e2e/common/node/sysctl.go - testname: Sysctl, test sysctls codename: '[sig-node] Sysctls [LinuxOnly] [NodeConformance] should support sysctls - [MinimumKubeletVersion:1.21] [Environment:NotInUserNS] [Conformance]' + [Environment:NotInUserNS] [Conformance]' description: 'Pod is created with kernel.shm_rmid_forced sysctl. Kernel.shm_rmid_forced must be set to 1 [LinuxOnly]: This test is marked as LinuxOnly since Windows does not support sysctls [Environment:NotInUserNS]: The test fails in UserNS (as expected):