From de2e232a85960e33a89b6538dc9e94e2590660ee Mon Sep 17 00:00:00 2001 From: Jefftree Date: Thu, 26 Sep 2024 19:48:08 +0000 Subject: [PATCH] port kcm feature to versioned --- pkg/features/kube_features.go | 10 ---------- pkg/features/versioned_kube_features.go | 5 +++++ .../pkg/features/kube_features.go | 15 +++++++++------ .../test_data/unversioned_feature_list.yaml | 6 ------ .../test_data/versioned_feature_list.yaml | 6 ++++++ 5 files changed, 20 insertions(+), 22 deletions(-) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index c03180a73c4..3346b6e1878 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -157,12 +157,6 @@ const ( // Enables kubelet to detect CSI volume condition and send the event of the abnormal volume to the corresponding pod that is using it. CSIVolumeHealth featuregate.Feature = "CSIVolumeHealth" - // owner: @nckturner - // kep: http://kep.k8s.io/2699 - // alpha: v1.27 - // Enable webhooks in cloud controller manager - CloudControllerManagerWebhook featuregate.Feature = "CloudControllerManagerWebhook" - // owner: @adrianreber // kep: https://kep.k8s.io/2008 // alpha: v1.25 @@ -972,9 +966,5 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS genericfeatures.KMSv1: {Default: false, PreRelease: featuregate.Deprecated}, - // features with duplicate definition in apiserver/controller-manager - - CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha}, - InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha}, } diff --git a/pkg/features/versioned_kube_features.go b/pkg/features/versioned_kube_features.go index decc2846484..14652a2be66 100644 --- a/pkg/features/versioned_kube_features.go +++ b/pkg/features/versioned_kube_features.go @@ -21,6 +21,7 @@ import ( "k8s.io/apimachinery/pkg/util/version" genericfeatures "k8s.io/apiserver/pkg/features" "k8s.io/component-base/featuregate" + kcmfeatures "k8s.io/controller-manager/pkg/features" ) // defaultVersionedKubernetesFeatureGates consists of all known Kubernetes-specific feature keys with VersionedSpecs. @@ -64,6 +65,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Alpha}, }, + kcmfeatures.CloudControllerManagerWebhook: { + {Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha}, + }, + ClusterTrustBundle: { {Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha}, }, diff --git a/staging/src/k8s.io/controller-manager/pkg/features/kube_features.go b/staging/src/k8s.io/controller-manager/pkg/features/kube_features.go index 639ca19a9f0..a28256d47e6 100644 --- a/staging/src/k8s.io/controller-manager/pkg/features/kube_features.go +++ b/staging/src/k8s.io/controller-manager/pkg/features/kube_features.go @@ -17,6 +17,7 @@ limitations under the License. package features import ( + "k8s.io/apimachinery/pkg/util/version" "k8s.io/component-base/featuregate" ) @@ -39,12 +40,14 @@ const ( CloudControllerManagerWebhook featuregate.Feature = "CloudControllerManagerWebhook" ) -func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.MutableFeatureGate) error { - return featuregates.Add(cloudPublicFeatureGates) +func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.MutableVersionedFeatureGate) error { + return featuregates.AddVersioned(versionedCloudPublicFeatureGates) } -// cloudPublicFeatureGates consists of cloud-specific feature keys. -// To add a new feature, define a key for it at k8s.io/api/pkg/features and add it here. -var cloudPublicFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ - CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha}, +// versionedCloudPublicFeatureGates consists of versioned cloud-specific feature keys. +// To add a new feature, define a key for it above and add it here. +var versionedCloudPublicFeatureGates = map[featuregate.Feature]featuregate.VersionedSpecs{ + CloudControllerManagerWebhook: { + {Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha}, + }, } diff --git a/test/featuregates_linter/test_data/unversioned_feature_list.yaml b/test/featuregates_linter/test_data/unversioned_feature_list.yaml index a71560fc05c..562275ed2d7 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: CloudControllerManagerWebhook - versionedSpecs: - - default: false - lockToDefault: false - preRelease: Alpha - version: "" - name: ComponentSLIs 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 a4fc633517e..31ab0f31838 100644 --- a/test/featuregates_linter/test_data/versioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/versioned_feature_list.yaml @@ -146,6 +146,12 @@ lockToDefault: false preRelease: Alpha version: "1.31" +- name: CloudControllerManagerWebhook + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Alpha + version: "1.27" - name: ClusterTrustBundle versionedSpecs: - default: false