From db3ec322d73db5c49cf5a96f4d41e59e3077e7da Mon Sep 17 00:00:00 2001 From: Jiahui Feng Date: Mon, 28 Mar 2022 09:27:49 -0700 Subject: [PATCH 1/2] mark ControllerManagerLeaderMigration as GA. --- pkg/features/kube_features.go | 3 ++- .../k8s.io/controller-manager/pkg/features/kube_features.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 76b1abb9173..9ada4c94f72 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -760,6 +760,7 @@ const ( // owner: @jiahuif // alpha: v1.21 // beta: v1.22 + // GA: v1.24 // // Enables Leader Migration for kube-controller-manager and cloud-controller-manager ControllerManagerLeaderMigration featuregate.Feature = "ControllerManagerLeaderMigration" @@ -969,7 +970,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS KubeletInUserNamespace: {Default: false, PreRelease: featuregate.Alpha}, MemoryQoS: {Default: false, PreRelease: featuregate.Alpha}, CPUManagerPolicyOptions: {Default: true, PreRelease: featuregate.Beta}, - ControllerManagerLeaderMigration: {Default: true, PreRelease: featuregate.Beta}, + ControllerManagerLeaderMigration: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.26 CPUManagerPolicyAlphaOptions: {Default: false, PreRelease: featuregate.Alpha}, CPUManagerPolicyBetaOptions: {Default: true, PreRelease: featuregate.Beta}, JobMutableNodeSchedulingDirectives: {Default: true, PreRelease: featuregate.Beta}, 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 a26686c36cc..d39713d1b3b 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 @@ -37,6 +37,7 @@ const ( // owner: @jiahuif // alpha: v1.21 // beta: v1.22 + // GA: v1.24 // // Enables Leader Migration for kube-controller-manager and cloud-controller-manager // copied and sync'ed from k8s.io/kubernetes/pkg/features/kube_features.go @@ -51,5 +52,5 @@ func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.Mutable // 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{ IPv6DualStack: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, - ControllerManagerLeaderMigration: {Default: true, PreRelease: featuregate.Beta}, + ControllerManagerLeaderMigration: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.26 } From 84ef4634812e65f0164099e2e17075c92790f519 Mon Sep 17 00:00:00 2001 From: Jiahui Feng Date: Mon, 28 Mar 2022 12:40:45 -0700 Subject: [PATCH 2/2] remove feature gate from tests. --- .../leadermigration/options/options_test.go | 55 ++++++------------- 1 file changed, 17 insertions(+), 38 deletions(-) diff --git a/staging/src/k8s.io/controller-manager/pkg/leadermigration/options/options_test.go b/staging/src/k8s.io/controller-manager/pkg/leadermigration/options/options_test.go index 5bcba5e480e..b6db3686e51 100644 --- a/staging/src/k8s.io/controller-manager/pkg/leadermigration/options/options_test.go +++ b/staging/src/k8s.io/controller-manager/pkg/leadermigration/options/options_test.go @@ -23,49 +23,30 @@ import ( "testing" "github.com/spf13/pflag" - utilfeature "k8s.io/apiserver/pkg/util/feature" - featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/controller-manager/config" - "k8s.io/controller-manager/pkg/features" migrationconfig "k8s.io/controller-manager/pkg/leadermigration/config" ) func TestLeaderMigrationOptions(t *testing.T) { testCases := []struct { - name string - flags []string - configContent string - expectEnabled bool - expectErr bool - enableFeatureGate bool - expectConfig *config.LeaderMigrationConfiguration + name string + flags []string + configContent string + expectEnabled bool + expectErr bool + expectConfig *config.LeaderMigrationConfiguration }{ { - name: "default (disabled), with feature gate disabled", - flags: []string{}, - enableFeatureGate: false, - expectEnabled: false, - expectErr: false, + name: "enabled, with default configuration", + flags: []string{"--enable-leader-migration"}, + expectEnabled: true, + expectErr: false, + expectConfig: migrationconfig.DefaultLeaderMigrationConfiguration(), }, { - name: "enabled, with feature gate disabled", - flags: []string{"--enable-leader-migration"}, - enableFeatureGate: false, - expectErr: true, - }, - { - name: "enabled, with default configuration", - flags: []string{"--enable-leader-migration"}, - enableFeatureGate: true, - expectEnabled: true, - expectErr: false, - expectConfig: migrationconfig.DefaultLeaderMigrationConfiguration(), - }, - { - name: "enabled, with custom configuration file", - flags: []string{"--enable-leader-migration"}, - enableFeatureGate: true, - expectEnabled: true, + name: "enabled, with custom configuration file", + flags: []string{"--enable-leader-migration"}, + expectEnabled: true, configContent: ` apiVersion: controllermanager.config.k8s.io/v1alpha1 kind: LeaderMigrationConfiguration @@ -81,10 +62,9 @@ controllerLeaders: [] }, }, { - name: "enabled, with custom configuration file (version v1beta1)", - flags: []string{"--enable-leader-migration"}, - enableFeatureGate: true, - expectEnabled: true, + name: "enabled, with custom configuration file (version v1beta1)", + flags: []string{"--enable-leader-migration"}, + expectEnabled: true, configContent: ` apiVersion: controllermanager.config.k8s.io/v1beta1 kind: LeaderMigrationConfiguration @@ -102,7 +82,6 @@ controllerLeaders: [] } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { - defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ControllerManagerLeaderMigration, tc.enableFeatureGate)() flags := tc.flags if tc.configContent != "" { configFile, err := ioutil.TempFile("", tc.name)