From a0977f0673f9c73c05111cfbc7f89bbb7680e462 Mon Sep 17 00:00:00 2001 From: Jefftree Date: Thu, 24 Oct 2024 13:00:04 +0000 Subject: [PATCH 1/3] Revert "Remove GA feature gate ComponentSLIs" This reverts commit f1af84620b0d1ae47208c5dc1cafe69f9323c5ad. --- .../component-base/metrics/features/kube_features.go | 11 ++++++++++- .../test_data/unversioned_feature_list.yaml | 6 ++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/component-base/metrics/features/kube_features.go b/staging/src/k8s.io/component-base/metrics/features/kube_features.go index 8758d7725eb..3cd6c22afae 100644 --- a/staging/src/k8s.io/component-base/metrics/features/kube_features.go +++ b/staging/src/k8s.io/component-base/metrics/features/kube_features.go @@ -20,8 +20,17 @@ import ( "k8s.io/component-base/featuregate" ) +const ( + // owner: @logicalhan + // kep: https://kep.k8s.io/3466 + // alpha: v1.26 + ComponentSLIs featuregate.Feature = "ComponentSLIs" +) + func featureGates() map[featuregate.Feature]featuregate.FeatureSpec { - return map[featuregate.Feature]featuregate.FeatureSpec{} + return map[featuregate.Feature]featuregate.FeatureSpec{ + ComponentSLIs: {Default: true, PreRelease: featuregate.Beta}, + } } // AddFeatureGates adds all feature gates used by this package. diff --git a/test/featuregates_linter/test_data/unversioned_feature_list.yaml b/test/featuregates_linter/test_data/unversioned_feature_list.yaml index 0044ff28514..4296ca06761 100644 --- a/test/featuregates_linter/test_data/unversioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/unversioned_feature_list.yaml @@ -1,3 +1,9 @@ +- name: ComponentSLIs + versionedSpecs: + - default: true + lockToDefault: false + preRelease: Beta + version: "" - name: ContextualLogging versionedSpecs: - default: true From 868ec5a6373b6dad2fc4eb290465aee75c2acf81 Mon Sep 17 00:00:00 2001 From: Jefftree Date: Thu, 24 Oct 2024 13:08:23 +0000 Subject: [PATCH 2/3] Move ComponentSLIs to versioned features and mark as GA --- .../metrics/features/kube_features.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/staging/src/k8s.io/component-base/metrics/features/kube_features.go b/staging/src/k8s.io/component-base/metrics/features/kube_features.go index 3cd6c22afae..74b41684e8e 100644 --- a/staging/src/k8s.io/component-base/metrics/features/kube_features.go +++ b/staging/src/k8s.io/component-base/metrics/features/kube_features.go @@ -17,23 +17,30 @@ limitations under the License. package features import ( + "k8s.io/apimachinery/pkg/util/version" "k8s.io/component-base/featuregate" ) const ( // owner: @logicalhan // kep: https://kep.k8s.io/3466 - // alpha: v1.26 ComponentSLIs featuregate.Feature = "ComponentSLIs" ) -func featureGates() map[featuregate.Feature]featuregate.FeatureSpec { - return map[featuregate.Feature]featuregate.FeatureSpec{ - ComponentSLIs: {Default: true, PreRelease: featuregate.Beta}, + +func featureGates() map[featuregate.Feature]featuregate.VersionedSpecs { + return map[featuregate.Feature]featuregate.VersionedSpecs{ + ComponentSLIs: { + {Version: version.MustParse("1.26"), Default: false, PreRelease: featuregate.Alpha}, + {Version: version.MustParse("1.27"), Default: true, PreRelease: featuregate.Beta}, + // ComponentSLIs officially graduated to GA in v1.29 but the gate was not updated until v1.32. + // To support emulated versions, keep the gate until v1.35. + {Version: version.MustParse("1.32"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, + }, } } // AddFeatureGates adds all feature gates used by this package. -func AddFeatureGates(mutableFeatureGate featuregate.MutableFeatureGate) error { - return mutableFeatureGate.Add(featureGates()) +func AddFeatureGates(mutableFeatureGate featuregate.MutableVersionedFeatureGate) error { + return mutableFeatureGate.AddVersioned(featureGates()) } From b8e3ef7fbfe2690ca2281f5f709e9fc73932aeb2 Mon Sep 17 00:00:00 2001 From: Jefftree Date: Thu, 24 Oct 2024 13:09:04 +0000 Subject: [PATCH 3/3] update feature yaml --- .../metrics/features/kube_features.go | 1 - .../test_data/unversioned_feature_list.yaml | 6 ------ .../test_data/versioned_feature_list.yaml | 14 ++++++++++++++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/staging/src/k8s.io/component-base/metrics/features/kube_features.go b/staging/src/k8s.io/component-base/metrics/features/kube_features.go index 74b41684e8e..5f41802cba2 100644 --- a/staging/src/k8s.io/component-base/metrics/features/kube_features.go +++ b/staging/src/k8s.io/component-base/metrics/features/kube_features.go @@ -27,7 +27,6 @@ const ( ComponentSLIs featuregate.Feature = "ComponentSLIs" ) - func featureGates() map[featuregate.Feature]featuregate.VersionedSpecs { return map[featuregate.Feature]featuregate.VersionedSpecs{ ComponentSLIs: { diff --git a/test/featuregates_linter/test_data/unversioned_feature_list.yaml b/test/featuregates_linter/test_data/unversioned_feature_list.yaml index 4296ca06761..0044ff28514 100644 --- a/test/featuregates_linter/test_data/unversioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/unversioned_feature_list.yaml @@ -1,9 +1,3 @@ -- name: ComponentSLIs - versionedSpecs: - - default: true - lockToDefault: false - preRelease: Beta - version: "" - name: ContextualLogging versionedSpecs: - default: true diff --git a/test/featuregates_linter/test_data/versioned_feature_list.yaml b/test/featuregates_linter/test_data/versioned_feature_list.yaml index 842389216be..29db338c6ec 100644 --- a/test/featuregates_linter/test_data/versioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/versioned_feature_list.yaml @@ -172,6 +172,20 @@ lockToDefault: false preRelease: Alpha version: "1.29" +- name: ComponentSLIs + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Alpha + version: "1.26" + - default: true + lockToDefault: false + preRelease: Beta + version: "1.27" + - default: true + lockToDefault: true + preRelease: GA + version: "1.32" - name: ConcurrentWatchObjectDecode versionedSpecs: - default: false