From a20039f3d44901f4e23bba297889d39b3f9abb9b Mon Sep 17 00:00:00 2001 From: Jefftree Date: Wed, 25 Sep 2024 16:20:39 +0000 Subject: [PATCH 1/5] update and reorder features that should not be listed under deprecated --- pkg/features/kube_features.go | 34 ++++++++----------- pkg/features/versioned_kube_features.go | 12 +++++++ .../test_data/unversioned_feature_list.yaml | 18 ---------- .../test_data/versioned_feature_list.yaml | 22 ++++++++++++ 4 files changed, 48 insertions(+), 38 deletions(-) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 743d2b69c2c..5a9d4059047 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -615,6 +615,14 @@ const ( // Allow users to recover from volume expansion failure RecoverVolumeExpansionFailure featuregate.Feature = "RecoverVolumeExpansionFailure" + // owner: @AkihiroSuda + // kep: https://kep.k8s.io/3857 + // alpha: v1.30 + // beta: v1.31 + // + // Allows recursive read-only mounts. + RecursiveReadOnlyMounts featuregate.Feature = "RecursiveReadOnlyMounts" + // owner: @adrianmoisey // kep: https://kep.k8s.io/4427 // alpha: v1.32 @@ -759,6 +767,12 @@ const ( // Enables a StatefulSet to start from an arbitrary non zero ordinal StatefulSetStartOrdinal featuregate.Feature = "StatefulSetStartOrdinal" + // owner: @ahutsunshine + // beta: v1.30 + // + // Allows namespace indexer for namespace scope resources in apiserver cache to accelerate list operations. + StorageNamespaceIndex featuregate.Feature = "StorageNamespaceIndex" + // owner: @nilekhc // kep: https://kep.k8s.io/4192 // alpha: v1.30 @@ -909,12 +923,6 @@ const ( // releases. UserNamespacesPodSecurityStandards featuregate.Feature = "UserNamespacesPodSecurityStandards" - // owner: @ahutsunshine - // beta: v1.30 - // - // Allows namespace indexer for namespace scope resources in apiserver cache to accelerate list operations. - StorageNamespaceIndex featuregate.Feature = "StorageNamespaceIndex" - // owner: @jsafrane // kep: https://kep.k8s.io/1710 // alpha: v1.30 @@ -922,14 +930,6 @@ const ( // instead of changing each file on the volumes recursively. SELinuxMount featuregate.Feature = "SELinuxMount" - // owner: @AkihiroSuda - // kep: https://kep.k8s.io/3857 - // alpha: v1.30 - // beta: v1.31 - // - // Allows recursive read-only mounts. - RecursiveReadOnlyMounts featuregate.Feature = "RecursiveReadOnlyMounts" - // owner: @everpeace // kep: https://kep.k8s.io/3619 // alpha: v1.31 @@ -978,15 +978,9 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS // features that enable backwards compatibility but are scheduled to be removed // ... - HPAScaleToZero: {Default: false, PreRelease: featuregate.Alpha}, - AllowDNSOnlyNodeCSR: {Default: false, PreRelease: featuregate.Deprecated}, // remove after 1.33 AllowInsecureKubeletCertificateSigningRequests: {Default: false, PreRelease: featuregate.Deprecated}, // remove in 1.33 DisableNodeKubeProxyVersion: {Default: false, PreRelease: featuregate.Deprecated}, // default on in 1.33 - - StorageNamespaceIndex: {Default: true, PreRelease: featuregate.Beta}, - - RecursiveReadOnlyMounts: {Default: true, PreRelease: featuregate.Beta}, } diff --git a/pkg/features/versioned_kube_features.go b/pkg/features/versioned_kube_features.go index 925f61dc1e3..1fdaed8b446 100644 --- a/pkg/features/versioned_kube_features.go +++ b/pkg/features/versioned_kube_features.go @@ -331,6 +331,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32 }, + HPAScaleToZero: { + {Version: version.MustParse("1.16"), Default: false, PreRelease: featuregate.Alpha}, + }, + ImageMaximumGCAge: { {Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Alpha}, {Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta}, @@ -541,6 +545,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate RecoverVolumeExpansionFailure: { {Version: version.MustParse("1.23"), Default: false, PreRelease: featuregate.Alpha}, }, + RecursiveReadOnlyMounts: { + {Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha}, + {Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta}, + }, RelaxedDNSSearchValidation: { {Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha}, @@ -585,6 +593,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.29"), Default: true, PreRelease: featuregate.Beta}, }, + StorageNamespaceIndex: { + {Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta}, + }, + ServiceAccountTokenJTI: { {Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Alpha}, {Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta}, diff --git a/test/featuregates_linter/test_data/unversioned_feature_list.yaml b/test/featuregates_linter/test_data/unversioned_feature_list.yaml index 07d839aea76..1279e5ab647 100644 --- a/test/featuregates_linter/test_data/unversioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/unversioned_feature_list.yaml @@ -34,12 +34,6 @@ lockToDefault: false preRelease: Deprecated version: "" -- name: HPAScaleToZero - versionedSpecs: - - default: false - lockToDefault: false - preRelease: Alpha - version: "" - name: InPlacePodVerticalScaling versionedSpecs: - default: false @@ -64,15 +58,3 @@ lockToDefault: false preRelease: Beta version: "" -- name: RecursiveReadOnlyMounts - versionedSpecs: - - default: true - lockToDefault: false - preRelease: Beta - version: "" -- name: StorageNamespaceIndex - versionedSpecs: - - default: true - lockToDefault: false - preRelease: Beta - version: "" diff --git a/test/featuregates_linter/test_data/versioned_feature_list.yaml b/test/featuregates_linter/test_data/versioned_feature_list.yaml index 62199c5265f..804cdd370d0 100644 --- a/test/featuregates_linter/test_data/versioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/versioned_feature_list.yaml @@ -412,6 +412,12 @@ lockToDefault: true preRelease: GA version: "1.30" +- name: HPAScaleToZero + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Alpha + version: "1.16" - name: ImageMaximumGCAge versionedSpecs: - default: false @@ -842,6 +848,16 @@ lockToDefault: false preRelease: Alpha version: "1.23" +- name: RecursiveReadOnlyMounts + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Alpha + version: "1.30" + - default: true + lockToDefault: false + preRelease: Beta + version: "1.31" - name: RelaxedDNSSearchValidation versionedSpecs: - default: false @@ -1048,6 +1064,12 @@ lockToDefault: true preRelease: GA version: "1.31" +- name: StorageNamespaceIndex + versionedSpecs: + - default: true + lockToDefault: false + preRelease: Beta + version: "1.30" - name: StorageVersionAPI versionedSpecs: - default: false From c9a999df1ab4e081bd90a84058d0ffcd9a5cffd0 Mon Sep 17 00:00:00 2001 From: Jefftree Date: Fri, 27 Sep 2024 18:53:43 +0000 Subject: [PATCH 2/5] Port deprecated features to versioned --- pkg/features/kube_features.go | 12 +++------- pkg/features/versioned_kube_features.go | 13 +++++++++++ .../test_data/unversioned_feature_list.yaml | 18 --------------- .../test_data/versioned_feature_list.yaml | 22 +++++++++++++++++++ 4 files changed, 38 insertions(+), 27 deletions(-) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 5a9d4059047..c03180a73c4 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -233,7 +233,9 @@ const ( // owner: @HirazawaUi // kep: http://kep.k8s.io/4004 - // Deprecated: v1.29 (default off) + // alpha: v1.29 + // Deprecated: v1.31 (default off) + // // DisableNodeKubeProxyVersion disable the status.nodeInfo.kubeProxyVersion field of v1.Node DisableNodeKubeProxyVersion featuregate.Feature = "DisableNodeKubeProxyVersion" @@ -975,12 +977,4 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha}, InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha}, - - // features that enable backwards compatibility but are scheduled to be removed - // ... - AllowDNSOnlyNodeCSR: {Default: false, PreRelease: featuregate.Deprecated}, // remove after 1.33 - - AllowInsecureKubeletCertificateSigningRequests: {Default: false, PreRelease: featuregate.Deprecated}, // remove in 1.33 - - DisableNodeKubeProxyVersion: {Default: false, PreRelease: featuregate.Deprecated}, // default on in 1.33 } diff --git a/pkg/features/versioned_kube_features.go b/pkg/features/versioned_kube_features.go index 1fdaed8b446..decc2846484 100644 --- a/pkg/features/versioned_kube_features.go +++ b/pkg/features/versioned_kube_features.go @@ -34,6 +34,14 @@ import ( // // Entries are alphabetized. var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate.VersionedSpecs{ + AllowDNSOnlyNodeCSR: { + {Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Deprecated}, + }, + + AllowInsecureKubeletCertificateSigningRequests: { + {Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Deprecated}, + }, + AllowOverwriteTerminationGracePeriodSeconds: { {Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Deprecated}, }, @@ -146,6 +154,11 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, }, + DisableNodeKubeProxyVersion: { + {Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Alpha}, + {Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Deprecated}, + }, + DRAControlPlaneController: { {Version: version.MustParse("1.26"), 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 1279e5ab647..a71560fc05c 100644 --- a/test/featuregates_linter/test_data/unversioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/unversioned_feature_list.yaml @@ -1,15 +1,3 @@ -- name: AllowDNSOnlyNodeCSR - versionedSpecs: - - default: false - lockToDefault: false - preRelease: Deprecated - version: "" -- name: AllowInsecureKubeletCertificateSigningRequests - versionedSpecs: - - default: false - lockToDefault: false - preRelease: Deprecated - version: "" - name: CloudControllerManagerWebhook versionedSpecs: - default: false @@ -28,12 +16,6 @@ lockToDefault: false preRelease: Beta version: "" -- name: DisableNodeKubeProxyVersion - versionedSpecs: - - default: false - lockToDefault: false - preRelease: Deprecated - version: "" - name: InPlacePodVerticalScaling versionedSpecs: - default: false diff --git a/test/featuregates_linter/test_data/versioned_feature_list.yaml b/test/featuregates_linter/test_data/versioned_feature_list.yaml index 804cdd370d0..a4fc633517e 100644 --- a/test/featuregates_linter/test_data/versioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/versioned_feature_list.yaml @@ -26,6 +26,18 @@ lockToDefault: true preRelease: GA version: "1.30" +- name: AllowDNSOnlyNodeCSR + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Deprecated + version: "1.31" +- name: AllowInsecureKubeletCertificateSigningRequests + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Deprecated + version: "1.31" - name: AllowOverwriteTerminationGracePeriodSeconds versionedSpecs: - default: false @@ -320,6 +332,16 @@ lockToDefault: true preRelease: GA version: "1.31" +- name: DisableNodeKubeProxyVersion + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Alpha + version: "1.29" + - default: false + lockToDefault: false + preRelease: Deprecated + version: "1.31" - name: DRAControlPlaneController versionedSpecs: - default: false From de2e232a85960e33a89b6538dc9e94e2590660ee Mon Sep 17 00:00:00 2001 From: Jefftree Date: Thu, 26 Sep 2024 19:48:08 +0000 Subject: [PATCH 3/5] 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 From a8390dcddda14274e5ce24dd517a19587118a198 Mon Sep 17 00:00:00 2001 From: Jefftree Date: Fri, 27 Sep 2024 19:04:47 +0000 Subject: [PATCH 4/5] Port the rest of unversioned features --- pkg/features/kube_features.go | 10 +--------- pkg/features/versioned_kube_features.go | 9 +++++++++ .../apiserver/pkg/features/kube_features.go | 14 ++++++++------ .../test_data/unversioned_feature_list.yaml | 12 ------------ .../test_data/versioned_feature_list.yaml | 16 ++++++++++++++++ 5 files changed, 34 insertions(+), 27 deletions(-) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 3346b6e1878..a024ec5c835 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -18,7 +18,6 @@ package features import ( "k8s.io/apimachinery/pkg/util/runtime" - genericfeatures "k8s.io/apiserver/pkg/features" utilfeature "k8s.io/apiserver/pkg/util/feature" clientfeatures "k8s.io/client-go/features" "k8s.io/component-base/featuregate" @@ -960,11 +959,4 @@ func init() { // // Entries are separated from each other with blank lines to avoid sweeping gofmt changes // when adding or removing one entry. -var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ - // inherited features from generic apiserver, relisted here to get a conflict if it is changed - // unintentionally on either side: - - genericfeatures.KMSv1: {Default: false, PreRelease: featuregate.Deprecated}, - - InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha}, -} +var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{} diff --git a/pkg/features/versioned_kube_features.go b/pkg/features/versioned_kube_features.go index 14652a2be66..6f5d9046289 100644 --- a/pkg/features/versioned_kube_features.go +++ b/pkg/features/versioned_kube_features.go @@ -250,6 +250,11 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.24"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, }, + genericfeatures.KMSv1: { + {Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Deprecated}, + {Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Deprecated}, + }, + genericfeatures.MutatingAdmissionPolicy: { {Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha}, }, @@ -362,6 +367,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Alpha}, }, + InPlacePodVerticalScaling: { + {Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha}, + }, + InTreePluginPortworxUnregister: { {Version: version.MustParse("1.23"), Default: false, PreRelease: featuregate.Alpha}, }, diff --git a/staging/src/k8s.io/apiserver/pkg/features/kube_features.go b/staging/src/k8s.io/apiserver/pkg/features/kube_features.go index ced24a03d45..50ac6930b2e 100644 --- a/staging/src/k8s.io/apiserver/pkg/features/kube_features.go +++ b/staging/src/k8s.io/apiserver/pkg/features/kube_features.go @@ -363,6 +363,11 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.24"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, }, + KMSv1: { + {Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Deprecated}, + {Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Deprecated}, + }, + MutatingAdmissionPolicy: { {Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha}, }, @@ -448,9 +453,6 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate }, } -// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys. -// 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{ - KMSv1: {Default: false, PreRelease: featuregate.Deprecated}, -} +// defaultKubernetesFeatureGates consists of legacy unversioned Kubernetes-specific feature keys. +// Please do not add to this struct and use defaultVersionedKubernetesFeatureGates instead. +var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{} diff --git a/test/featuregates_linter/test_data/unversioned_feature_list.yaml b/test/featuregates_linter/test_data/unversioned_feature_list.yaml index 562275ed2d7..4296ca06761 100644 --- a/test/featuregates_linter/test_data/unversioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/unversioned_feature_list.yaml @@ -10,18 +10,6 @@ lockToDefault: false preRelease: Beta version: "" -- name: InPlacePodVerticalScaling - versionedSpecs: - - default: false - lockToDefault: false - preRelease: Alpha - version: "" -- name: KMSv1 - versionedSpecs: - - default: false - lockToDefault: false - preRelease: Deprecated - version: "" - name: LoggingAlphaOptions versionedSpecs: - default: false diff --git a/test/featuregates_linter/test_data/versioned_feature_list.yaml b/test/featuregates_linter/test_data/versioned_feature_list.yaml index 31ab0f31838..e7de7567a78 100644 --- a/test/featuregates_linter/test_data/versioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/versioned_feature_list.yaml @@ -462,6 +462,12 @@ lockToDefault: false preRelease: Alpha version: "1.31" +- name: InPlacePodVerticalScaling + versionedSpecs: + - default: false + lockToDefault: false + preRelease: Alpha + version: "1.27" - name: InTreePluginPortworxUnregister versionedSpecs: - default: false @@ -518,6 +524,16 @@ lockToDefault: false preRelease: Beta version: "1.31" +- name: KMSv1 + versionedSpecs: + - default: true + lockToDefault: false + preRelease: Deprecated + version: "1.28" + - default: false + lockToDefault: false + preRelease: Deprecated + version: "1.29" - name: KubeletCgroupDriverFromCRI versionedSpecs: - default: false From d918804a5aff6b8451c4e89fea0d51be2abb827b Mon Sep 17 00:00:00 2001 From: Jefftree Date: Fri, 27 Sep 2024 20:29:16 +0000 Subject: [PATCH 5/5] reorder retrygeneratename and fix feature gate to lint versioned features --- hack/verify-test-featuregates.sh | 2 +- pkg/features/versioned_kube_features.go | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/hack/verify-test-featuregates.sh b/hack/verify-test-featuregates.sh index bd1f1b12375..b0f76c0250b 100755 --- a/hack/verify-test-featuregates.sh +++ b/hack/verify-test-featuregates.sh @@ -43,7 +43,7 @@ fi # ensure all generic features are added in alphabetic order -lines=$(git grep 'genericfeatures[.].*:' -- pkg/features/kube_features.go) +lines=$(git grep 'genericfeatures[.].*:' -- pkg/features/versioned_kube_features.go) sorted_lines=$(echo "$lines" | sort -f) if [[ "$lines" != "$sorted_lines" ]]; then echo "Generic features in pkg/features/kube_features.go not sorted" >&2 diff --git a/pkg/features/versioned_kube_features.go b/pkg/features/versioned_kube_features.go index 6f5d9046289..dfe88a07582 100644 --- a/pkg/features/versioned_kube_features.go +++ b/pkg/features/versioned_kube_features.go @@ -274,6 +274,12 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate {Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta}, }, + genericfeatures.RetryGenerateName: { + {Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha}, + {Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta}, + {Version: version.MustParse("1.32"), Default: true, LockToDefault: true, PreRelease: featuregate.GA}, + }, + genericfeatures.SeparateCacheWatchRPC: { {Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Beta}, }, @@ -737,9 +743,4 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate WindowsHostNetwork: { {Version: version.MustParse("1.26"), Default: true, PreRelease: featuregate.Alpha}, }, - genericfeatures.RetryGenerateName: { - {Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha}, - {Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta}, - {Version: version.MustParse("1.32"), Default: true, LockToDefault: true, PreRelease: featuregate.GA}, - }, }