From d6a6dda2fa7f002d5f238eb51c47e0c3e14044e7 Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Thu, 13 Feb 2025 15:12:42 +0900 Subject: [PATCH] KEP-3857: Recursive Read-only (RRO) mounts: promote to GA Discussed in kubernetes/enhancements PR 5157 Signed-off-by: Akihiro Suda --- pkg/features/versioned_kube_features.go | 1 + test/e2e/feature/feature.go | 3 --- test/e2e_node/mount_rro_linux_test.go | 5 +---- .../test_data/versioned_feature_list.yaml | 4 ++++ 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/features/versioned_kube_features.go b/pkg/features/versioned_kube_features.go index 79b7ff156a0..1acf755bbf8 100644 --- a/pkg/features/versioned_kube_features.go +++ b/pkg/features/versioned_kube_features.go @@ -626,6 +626,7 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate RecursiveReadOnlyMounts: { {Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha}, {Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta}, + {Version: version.MustParse("1.33"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.36 }, RelaxedDNSSearchValidation: { diff --git a/test/e2e/feature/feature.go b/test/e2e/feature/feature.go index 8c86e861a63..cfe7eada728 100644 --- a/test/e2e/feature/feature.go +++ b/test/e2e/feature/feature.go @@ -384,9 +384,6 @@ var ( // TODO: document the feature (owning SIG, when to use this feature for a test) RecoverVolumeExpansionFailure = framework.WithFeature(framework.ValidFeatures.Add("RecoverVolumeExpansionFailure")) - // RecursiveReadOnlyMounts (SIG-node, used for testing recursive read-only mounts ) - RecursiveReadOnlyMounts = framework.WithFeature(framework.ValidFeatures.Add("RecursiveReadOnlyMounts")) - // RelaxedEnvironmentVariableValidation used when we verify whether the pod can consume all printable ASCII characters as environment variable names, // and whether the pod can consume configmap/secret that key starts with a number. RelaxedEnvironmentVariableValidation = framework.WithFeature(framework.ValidFeatures.Add("RelaxedEnvironmentVariableValidation")) diff --git a/test/e2e_node/mount_rro_linux_test.go b/test/e2e_node/mount_rro_linux_test.go index 8b85a9b61b1..fae4c72a291 100644 --- a/test/e2e_node/mount_rro_linux_test.go +++ b/test/e2e_node/mount_rro_linux_test.go @@ -26,7 +26,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/kubernetes/pkg/features" - "k8s.io/kubernetes/test/e2e/feature" "k8s.io/kubernetes/test/e2e/framework" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" @@ -34,9 +33,7 @@ import ( "k8s.io/utils/ptr" ) -// Usage: -// make test-e2e-node TEST_ARGS='--service-feature-gates=RecursiveReadOnlyMounts=true --kubelet-flags="--feature-gates=RecursiveReadOnlyMounts=true"' FOCUS="Mount recursive read-only" SKIP="" -var _ = SIGDescribe("Mount recursive read-only [LinuxOnly]", feature.RecursiveReadOnlyMounts, func() { +var _ = SIGDescribe("Mount recursive read-only [LinuxOnly]", func() { f := framework.NewDefaultFramework("mount-rro") f.NamespacePodSecurityLevel = admissionapi.LevelPrivileged ginkgo.Describe("Mount recursive read-only", func() { diff --git a/test/featuregates_linter/test_data/versioned_feature_list.yaml b/test/featuregates_linter/test_data/versioned_feature_list.yaml index df71e5d3a1e..e2c5dfa489c 100644 --- a/test/featuregates_linter/test_data/versioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/versioned_feature_list.yaml @@ -1038,6 +1038,10 @@ lockToDefault: false preRelease: Beta version: "1.31" + - default: true + lockToDefault: true + preRelease: GA + version: "1.33" - name: RelaxedDNSSearchValidation versionedSpecs: - default: false