From 88f47b4b4df2f099cc20381fdc0fbcfe0afcee8e Mon Sep 17 00:00:00 2001 From: Lukasz Szaszkiewicz Date: Thu, 18 Jul 2024 09:29:24 +0200 Subject: [PATCH 1/3] Revert "kube-apiserver: promote WatchList feature to beta" This reverts commit 0b15903b35d83ca32833e81997b6257ee4d4f369. --- pkg/features/kube_features.go | 2 +- staging/src/k8s.io/apiserver/pkg/features/kube_features.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 8cd3e1c039d..fdd905d9c76 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -1283,7 +1283,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS genericfeatures.WatchFromStorageWithoutResourceVersion: {Default: false, PreRelease: featuregate.Beta}, - genericfeatures.WatchList: {Default: true, PreRelease: featuregate.Beta}, + genericfeatures.WatchList: {Default: false, PreRelease: featuregate.Alpha}, genericfeatures.ZeroLimitedNominalConcurrencyShares: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32 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 b22d3d8b643..200838247e9 100644 --- a/staging/src/k8s.io/apiserver/pkg/features/kube_features.go +++ b/staging/src/k8s.io/apiserver/pkg/features/kube_features.go @@ -301,7 +301,6 @@ const ( // owner: @p0lyn0mial // alpha: v1.27 - // beta: v1.31 // // Allow the API server to stream individual items instead of chunking WatchList featuregate.Feature = "WatchList" @@ -407,7 +406,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha}, - WatchList: {Default: true, PreRelease: featuregate.Beta}, + WatchList: {Default: false, PreRelease: featuregate.Alpha}, ConsistentListFromCache: {Default: false, PreRelease: featuregate.Alpha}, From 367401cd859934511b5339a1b2decdcc8c494c1f Mon Sep 17 00:00:00 2001 From: Lukasz Szaszkiewicz Date: Thu, 18 Jul 2024 09:29:46 +0200 Subject: [PATCH 2/3] Revert "e2e/apimachinery/watchlist: always run WatchList e2e tests" This reverts commit be00cded2df79d50c5b139e450dbaa5ba383f32b. --- test/e2e/apimachinery/watchlist.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/e2e/apimachinery/watchlist.go b/test/e2e/apimachinery/watchlist.go index 06a43c46ad3..0e5e131a2cc 100644 --- a/test/e2e/apimachinery/watchlist.go +++ b/test/e2e/apimachinery/watchlist.go @@ -42,10 +42,11 @@ import ( "k8s.io/client-go/util/consistencydetector" "k8s.io/component-base/featuregate" featuregatetesting "k8s.io/component-base/featuregate/testing" + "k8s.io/kubernetes/test/e2e/feature" "k8s.io/kubernetes/test/e2e/framework" ) -var _ = SIGDescribe("API Streaming (aka. WatchList)", framework.WithSerial(), func() { +var _ = SIGDescribe("API Streaming (aka. WatchList)", framework.WithSerial(), feature.WatchList, func() { f := framework.NewDefaultFramework("watchlist") ginkgo.It("should be requested by informers when WatchListClient is enabled", func(ctx context.Context) { featuregatetesting.SetFeatureGateDuringTest(ginkgo.GinkgoTB(), utilfeature.DefaultFeatureGate, featuregate.Feature(clientfeatures.WatchListClient), true) From 2f5394567e1acd39d4491ce1cc863a950c054406 Mon Sep 17 00:00:00 2001 From: Lukasz Szaszkiewicz Date: Thu, 18 Jul 2024 09:29:53 +0200 Subject: [PATCH 3/3] Revert "kube-controller-manager: enable WatchListClient" This reverts commit 825091693d519803e25236e6b4fe125e674b17ca. --- cmd/kube-controller-manager/app/options/options.go | 13 ------------- .../app/options/options_test.go | 6 +++--- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index 6d56ee1e5bc..1c3e4edb178 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -25,7 +25,6 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" apiserveroptions "k8s.io/apiserver/pkg/server/options" utilfeature "k8s.io/apiserver/pkg/util/feature" - clientgofeaturegate "k8s.io/client-go/features" clientset "k8s.io/client-go/kubernetes" clientgokubescheme "k8s.io/client-go/kubernetes/scheme" restclient "k8s.io/client-go/rest" @@ -34,12 +33,10 @@ import ( cpnames "k8s.io/cloud-provider/names" cpoptions "k8s.io/cloud-provider/options" cliflag "k8s.io/component-base/cli/flag" - "k8s.io/component-base/featuregate" "k8s.io/component-base/logs" logsapi "k8s.io/component-base/logs/api/v1" "k8s.io/component-base/metrics" cmoptions "k8s.io/controller-manager/options" - "k8s.io/klog/v2" kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1" kubecontrollerconfig "k8s.io/kubernetes/cmd/kube-controller-manager/app/config" "k8s.io/kubernetes/cmd/kube-controller-manager/names" @@ -276,16 +273,6 @@ func (s *KubeControllerManagerOptions) Flags(allControllers []string, disabledBy fs := fss.FlagSet("misc") fs.StringVar(&s.Master, "master", s.Master, "The address of the Kubernetes API server (overrides any value in kubeconfig).") fs.StringVar(&s.Generic.ClientConnection.Kubeconfig, "kubeconfig", s.Generic.ClientConnection.Kubeconfig, "Path to kubeconfig file with authorization and master location information (the master location can be overridden by the master flag).") - - if !utilfeature.DefaultFeatureGate.Enabled(featuregate.Feature(clientgofeaturegate.WatchListClient)) { - if err := utilfeature.DefaultMutableFeatureGate.OverrideDefault(featuregate.Feature(clientgofeaturegate.WatchListClient), true); err != nil { - // it turns out that there are some integration tests that start multiple control plane components which - // share global DefaultFeatureGate/DefaultMutableFeatureGate variables. - // in those cases, the above call will fail (FG already registered and cannot be overridden), and the error will be logged. - klog.Errorf("unable to set %s feature gate, err: %v", clientgofeaturegate.WatchListClient, err) - } - } - utilfeature.DefaultMutableFeatureGate.AddFlag(fss.FlagSet("generic")) return fss diff --git a/cmd/kube-controller-manager/app/options/options_test.go b/cmd/kube-controller-manager/app/options/options_test.go index 3f7da42b369..c1b81c6026e 100644 --- a/cmd/kube-controller-manager/app/options/options_test.go +++ b/cmd/kube-controller-manager/app/options/options_test.go @@ -1355,8 +1355,8 @@ func TestWatchListClientFlagChange(t *testing.T) { func assertWatchListClientFeatureDefaultValue(t *testing.T) { watchListClientDefaultValue := clientgofeaturegate.FeatureGates().Enabled(clientgofeaturegate.WatchListClient) - if !watchListClientDefaultValue { - t.Fatalf("expected %q feature gate to be enabled for KCM", clientgofeaturegate.WatchListClient) + if watchListClientDefaultValue { + t.Fatalf("expected %q feature gate to be disabled for KCM", clientgofeaturegate.WatchListClient) } } @@ -1367,7 +1367,7 @@ func assertWatchListCommandLineDefaultValue(t *testing.T, fs *pflag.FlagSet) { t.Fatalf("didn't find %q flag", fgFlagName) } - expectedWatchListClientString := "WatchListClient=true|false (BETA - default=true)" + expectedWatchListClientString := "WatchListClient=true|false (BETA - default=false)" if !strings.Contains(fg.Usage, expectedWatchListClientString) { t.Fatalf("%q flag doesn't contain the expected usage for %v feature gate.\nExpected = %v\nUsage = %v", fgFlagName, clientgofeaturegate.WatchListClient, expectedWatchListClientString, fg.Usage) }