From e30c49b0e8fb9f49897fb1f6972a7dea35f2d199 Mon Sep 17 00:00:00 2001 From: Alexander Constantinescu Date: Wed, 15 Feb 2023 12:21:02 +0100 Subject: [PATCH] Add StableLoadBalancerNodeSet feature gate --- pkg/features/kube_features.go | 10 ++++++ .../pkg/features/kube_features.go | 32 ++++++++++++------- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 21f60f78b1f..74adacb48c3 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -739,6 +739,14 @@ const ( // Enables kubelet support to size memory backed volumes SizeMemoryBackedVolumes featuregate.Feature = "SizeMemoryBackedVolumes" + // owner: @alexanderConstantinescu + // kep: http://kep.k8s.io/3458 + // beta: v1.27 + // + // Enables less load balancer re-configurations by the service controller + // (KCCM) as an effect of changing node state. + StableLoadBalancerNodeSet featuregate.Feature = "StableLoadBalancerNodeSet" + // owner: @mattcary // alpha: v1.22 // @@ -1056,6 +1064,8 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS SizeMemoryBackedVolumes: {Default: true, PreRelease: featuregate.Beta}, + StableLoadBalancerNodeSet: {Default: true, PreRelease: featuregate.Beta}, + StatefulSetAutoDeletePVC: {Default: false, PreRelease: featuregate.Alpha}, StatefulSetStartOrdinal: {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 c2e339ab507..891d0d1282c 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 @@ -21,16 +21,24 @@ import ( ) const ( -// Every feature gate should add method here following this template: -// -// // owner: @username -// // alpha: v1.4 -// MyFeature featuregate.Feature = "MyFeature" -// -// Feature gates should be listed in alphabetical, case-sensitive -// (upper before any lower case character) order. This reduces the risk -// of code conflicts because changes are more likely to be scattered -// across the file. + // Every feature gate should add method here following this template: + // + // // owner: @username + // // alpha: v1.4 + // MyFeature featuregate.Feature = "MyFeature" + // + // Feature gates should be listed in alphabetical, case-sensitive + // (upper before any lower case character) order. This reduces the risk + // of code conflicts because changes are more likely to be scattered + // across the file. + + // owner: @alexanderConstantinescu + // kep: http://kep.k8s.io/3458 + // beta: v1.27 + // + // Enables less load balancer re-configurations by the service controller + // (KCCM) as an effect of changing node state. + StableLoadBalancerNodeSet featuregate.Feature = "StableLoadBalancerNodeSet" ) func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.MutableFeatureGate) error { @@ -39,4 +47,6 @@ func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.Mutable // 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{} +var cloudPublicFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ + StableLoadBalancerNodeSet: {Default: true, PreRelease: featuregate.Beta}, +}