diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 39c89fe764d..df5340a3120 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -1212,7 +1212,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS // inherited features from apiextensions-apiserver, relisted here to get a conflict if it is changed // unintentionally on either side: - apiextensionsfeatures.CRDValidationRatcheting: {Default: false, PreRelease: featuregate.Alpha}, + apiextensionsfeatures.CRDValidationRatcheting: {Default: true, PreRelease: featuregate.Beta}, // features that enable backwards compatibility but are scheduled to be removed // ... diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go index 1844ed8d1eb..7394b87895a 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go @@ -44,5 +44,5 @@ func init() { // To add a new feature, define a key for it above and add it here. The features will be // available throughout Kubernetes binaries. var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ - CRDValidationRatcheting: {Default: false, PreRelease: featuregate.Alpha}, + CRDValidationRatcheting: {Default: true, PreRelease: featuregate.Beta}, } diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/ratcheting_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/ratcheting_test.go index faaef6447ef..fa6a1aa6087 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/ratcheting_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/ratcheting_test.go @@ -1952,6 +1952,8 @@ func BenchmarkRatcheting(b *testing.B) { } func TestRatchetingDropFields(t *testing.T) { + // Field dropping only takes effect when feature is disabled + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CRDValidationRatcheting, false)() tearDown, apiExtensionClient, _, err := fixtures.StartDefaultServerWithClients(t) if err != nil { t.Fatal(err) @@ -1982,6 +1984,7 @@ func TestRatchetingDropFields(t *testing.T) { Type: "string", XValidations: []apiextensionsv1.ValidationRule{ { + // Results in error if field wasn't dropped Rule: "self == oldSelf", OptionalOldSelf: ptr(true), },