From 3010618efee0e85e7b52af822d0368d2f2b4739f Mon Sep 17 00:00:00 2001 From: Aaron Prindle Date: Thu, 27 Feb 2025 19:25:44 +0000 Subject: [PATCH] feat: add DeclarativeValidation and DeclarativeValidationMismatchMetric feature gates --- pkg/features/kube_features.go | 15 +++++++++++++++ pkg/features/versioned_kube_features.go | 8 ++++++++ .../test_data/versioned_feature_list.yaml | 12 ++++++++++++ 3 files changed, 35 insertions(+) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 8a995ca3ee6..669008e8e66 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -153,6 +153,21 @@ const ( // Enable usage of Provision of PVCs from snapshots in other namespaces CrossNamespaceVolumeDataSource featuregate.Feature = "CrossNamespaceVolumeDataSource" + // owner: @thockin + // kep: http://kep.k8s.io/5073: + // beta: v1.33 + // + // Enable declarative validation of APIs, where declared. + DeclarativeValidation featuregate.Feature = "DeclarativeValidation" + + // owner: @thockin + // kep: http://kep.k8s.io/5073: + // beta: v1.33 + // + // Enable declarative_validation_mismatch metric which outputs # of mismatch occurrences between + // hand-written and declarative validation rules. + DeclarativeValidationMismatchMetric featuregate.Feature = "DeclarativeValidationMismatchMetric" + // owner: @atiratree // kep: http://kep.k8s.io/3973 // diff --git a/pkg/features/versioned_kube_features.go b/pkg/features/versioned_kube_features.go index 7a75518397b..2a63df7ec1a 100644 --- a/pkg/features/versioned_kube_features.go +++ b/pkg/features/versioned_kube_features.go @@ -149,6 +149,14 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.32"), Default: true, LockToDefault: true, PreRelease: featuregate.GA}, }, + DeclarativeValidation: { + {Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Beta}, + }, + + DeclarativeValidationMismatchMetric: { + {Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Beta}, + }, + DeploymentPodReplacementPolicy: { {Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha}, }, diff --git a/test/featuregates_linter/test_data/versioned_feature_list.yaml b/test/featuregates_linter/test_data/versioned_feature_list.yaml index 975224f7011..75dd1b9000c 100644 --- a/test/featuregates_linter/test_data/versioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/versioned_feature_list.yaml @@ -374,6 +374,18 @@ lockToDefault: true preRelease: GA version: "1.32" +- name: DeclarativeValidation + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Beta + version: "1.33" +- name: DeclarativeValidationMismatchMetric + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Beta + version: "1.33" - name: DeploymentPodReplacementPolicy versionedSpecs: - default: false