Skip to content

Commit c7fcef1

Browse files
committed
apiserver: set APF featuregate to ga
1 parent 84fb7b5 commit c7fcef1

File tree

10 files changed

+9
-30
lines changed

10 files changed

+9
-30
lines changed

pkg/controlplane/apiserver/options/validation.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ func validateTokenRequest(options *Options) []error {
5151
}
5252

5353
func validateAPIPriorityAndFairness(options *Options) []error {
54-
if utilfeature.DefaultFeatureGate.Enabled(genericfeatures.APIPriorityAndFairness) && options.Features.EnablePriorityAndFairness {
54+
if options.Features.EnablePriorityAndFairness {
5555
// If none of the following runtime config options are specified,
5656
// APF is assumed to be turned on. The internal APF controller uses
5757
// v1 so it should be enabled.
5858
enabledAPIString := options.APIEnablement.RuntimeConfig.String()
5959
testConfigs := []string{"flowcontrol.apiserver.k8s.io/v1", "api/ga", "api/all"} // in the order of precedence
6060
for _, testConfig := range testConfigs {
6161
if strings.Contains(enabledAPIString, fmt.Sprintf("%s=false", testConfig)) {
62-
return []error{fmt.Errorf("--runtime-config=%s=false conflicts with --enable-priority-and-fairness=true and --feature-gates=APIPriorityAndFairness=true", testConfig)}
62+
return []error{fmt.Errorf("--runtime-config=%s=false conflicts with --enable-priority-and-fairness=true", testConfig)}
6363
}
6464
if strings.Contains(enabledAPIString, fmt.Sprintf("%s=true", testConfig)) {
6565
return nil

pkg/controlplane/apiserver/options/validation_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import (
3333
)
3434

3535
func TestValidateAPIPriorityAndFairness(t *testing.T) {
36-
const conflict = "conflicts with --enable-priority-and-fairness=true and --feature-gates=APIPriorityAndFairness=true"
36+
const conflict = "conflicts with --enable-priority-and-fairness=true"
3737
tests := []struct {
3838
runtimeConfig string
3939
errShouldContain string

pkg/features/kube_features.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1195,7 +1195,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
11951195

11961196
genericfeatures.APIListChunking: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
11971197

1198-
genericfeatures.APIPriorityAndFairness: {Default: true, PreRelease: featuregate.Beta},
1198+
genericfeatures.APIPriorityAndFairness: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.31
11991199

12001200
genericfeatures.APIResponseCompression: {Default: true, PreRelease: featuregate.Beta},
12011201

staging/src/k8s.io/apiserver/pkg/features/kube_features.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ const (
6363
// owner: @MikeSpreitzer @yue9944882
6464
// alpha: v1.18
6565
// beta: v1.20
66+
// stable: 1.29
6667
//
6768
// Enables managing request concurrency with prioritization and fairness at each server.
6869
// The FeatureGate was introduced in release 1.15 but the feature
@@ -276,7 +277,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
276277

277278
APIListChunking: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
278279

279-
APIPriorityAndFairness: {Default: true, PreRelease: featuregate.Beta},
280+
APIPriorityAndFairness: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.31
280281

281282
APIResponseCompression: {Default: true, PreRelease: featuregate.Beta},
282283

staging/src/k8s.io/apiserver/pkg/server/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1084,7 +1084,7 @@ func installAPI(s *GenericAPIServer, c *Config) {
10841084
s.Handler.GoRestfulContainer.Add(s.DiscoveryGroupManager.WebService())
10851085
}
10861086
}
1087-
if c.FlowControl != nil && utilfeature.DefaultFeatureGate.Enabled(genericfeatures.APIPriorityAndFairness) {
1087+
if c.FlowControl != nil {
10881088
c.FlowControl.Install(s.Handler.NonGoRestfulMux)
10891089
}
10901090
}

staging/src/k8s.io/apiserver/pkg/server/options/feature.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ import (
2222
"github.com/spf13/pflag"
2323

2424
"k8s.io/apimachinery/pkg/runtime/serializer"
25-
"k8s.io/apiserver/pkg/features"
2625
"k8s.io/apiserver/pkg/server"
27-
"k8s.io/apiserver/pkg/util/feature"
2826
utilflowcontrol "k8s.io/apiserver/pkg/util/flowcontrol"
2927
"k8s.io/client-go/informers"
3028
"k8s.io/client-go/kubernetes"
@@ -60,7 +58,7 @@ func (o *FeatureOptions) AddFlags(fs *pflag.FlagSet) {
6058
fs.StringVar(&o.DebugSocketPath, "debug-socket-path", o.DebugSocketPath,
6159
"Use an unprotected (no authn/authz) unix-domain socket for profiling with the given path")
6260
fs.BoolVar(&o.EnablePriorityAndFairness, "enable-priority-and-fairness", o.EnablePriorityAndFairness, ""+
63-
"If true and the APIPriorityAndFairness feature gate is enabled, replace the max-in-flight handler with an enhanced one that queues and dispatches with priority and fairness")
61+
"If true, replace the max-in-flight handler with an enhanced one that queues and dispatches with priority and fairness")
6462
}
6563

6664
func (o *FeatureOptions) ApplyTo(c *server.Config, clientset kubernetes.Interface, informers informers.SharedInformerFactory) error {
@@ -72,7 +70,7 @@ func (o *FeatureOptions) ApplyTo(c *server.Config, clientset kubernetes.Interfac
7270
c.DebugSocketPath = o.DebugSocketPath
7371
c.EnableContentionProfiling = o.EnableContentionProfiling
7472

75-
if o.EnablePriorityAndFairness && feature.DefaultFeatureGate.Enabled(features.APIPriorityAndFairness) {
73+
if o.EnablePriorityAndFairness {
7674
if c.MaxRequestsInFlight+c.MaxMutatingRequestsInFlight <= 0 {
7775
return fmt.Errorf("invalid configuration: MaxRequestsInFlight=%d and MaxMutatingRequestsInFlight=%d; they must add up to something positive", c.MaxRequestsInFlight, c.MaxMutatingRequestsInFlight)
7876

test/integration/apiserver/flowcontrol/concurrency_test.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,8 @@ import (
3131
flowcontrol "k8s.io/api/flowcontrol/v1"
3232
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3333
"k8s.io/apimachinery/pkg/util/wait"
34-
genericfeatures "k8s.io/apiserver/pkg/features"
35-
utilfeature "k8s.io/apiserver/pkg/util/feature"
3634
clientset "k8s.io/client-go/kubernetes"
3735
"k8s.io/client-go/rest"
38-
featuregatetesting "k8s.io/component-base/featuregate/testing"
3936
"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
4037
"k8s.io/kubernetes/test/integration/framework"
4138
"k8s.io/kubernetes/test/utils/ktesting"
@@ -71,8 +68,6 @@ func setup(t testing.TB, maxReadonlyRequestsInFlight, maxMutatingRequestsInFligh
7168
}
7269

7370
func TestPriorityLevelIsolation(t *testing.T) {
74-
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.APIPriorityAndFairness, true)()
75-
// NOTE: disabling the feature should fail the test
7671
ctx, kubeConfig, closeFn := setup(t, 1, 1)
7772
defer closeFn()
7873

test/integration/apiserver/flowcontrol/concurrency_util_test.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,7 @@ import (
3131

3232
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3333
"k8s.io/apiserver/pkg/authorization/authorizer"
34-
genericfeatures "k8s.io/apiserver/pkg/features"
35-
utilfeature "k8s.io/apiserver/pkg/util/feature"
3634
clientset "k8s.io/client-go/kubernetes"
37-
featuregatetesting "k8s.io/component-base/featuregate/testing"
3835
"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
3936
"k8s.io/kubernetes/pkg/controlplane"
4037
"k8s.io/kubernetes/test/integration/framework"
@@ -152,9 +149,6 @@ func TestConcurrencyIsolation(t *testing.T) {
152149
ctx, cancel := context.WithCancel(ctx)
153150
defer cancel()
154151

155-
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.APIPriorityAndFairness, true)()
156-
// NOTE: disabling the feature should fail the test
157-
158152
_, kubeConfig, closeFn := framework.StartTestServer(ctx, t, framework.TestServerSetup{
159153
ModifyServerRunOptions: func(opts *options.ServerRunOptions) {
160154
// Ensure all clients are allowed to send requests.

test/integration/apiserver/flowcontrol/fight_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,13 @@ import (
2626
"time"
2727

2828
flowcontrol "k8s.io/api/flowcontrol/v1"
29-
genericfeatures "k8s.io/apiserver/pkg/features"
30-
utilfeature "k8s.io/apiserver/pkg/util/feature"
3129
utilfc "k8s.io/apiserver/pkg/util/flowcontrol"
3230
fqtesting "k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/testing"
3331
"k8s.io/apiserver/pkg/util/flowcontrol/metrics"
3432
"k8s.io/client-go/informers"
3533
clientset "k8s.io/client-go/kubernetes"
3634
"k8s.io/client-go/rest"
3735
"k8s.io/client-go/tools/cache"
38-
featuregatetesting "k8s.io/component-base/featuregate/testing"
3936
"k8s.io/utils/clock"
4037
testclocks "k8s.io/utils/clock/testing"
4138
)
@@ -170,7 +167,6 @@ func (ft *fightTest) evaluate(tBeforeCreate, tAfterCreate time.Time) {
170167
}
171168
}
172169
func TestConfigConsumerFight(t *testing.T) {
173-
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.APIPriorityAndFairness, true)()
174170
_, kubeConfig, closeFn := setup(t, 100, 100)
175171
defer closeFn()
176172
const teamSize = 3

test/integration/apiserver/flowcontrol/fs_condition_test.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,12 @@ import (
2626
machinerytypes "k8s.io/apimachinery/pkg/types"
2727
"k8s.io/apimachinery/pkg/util/wait"
2828
fcboot "k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap"
29-
genericfeatures "k8s.io/apiserver/pkg/features"
30-
utilfeature "k8s.io/apiserver/pkg/util/feature"
3129
flowcontrolapply "k8s.io/client-go/applyconfigurations/flowcontrol/v1"
3230
clientset "k8s.io/client-go/kubernetes"
33-
featuregatetesting "k8s.io/component-base/featuregate/testing"
3431
"k8s.io/klog/v2"
3532
)
3633

3734
func TestConditionIsolation(t *testing.T) {
38-
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.APIPriorityAndFairness, true)()
39-
// NOTE: disabling the feature should fail the test
4035
ctx, kubeConfig, closeFn := setup(t, 10, 10)
4136
defer closeFn()
4237

0 commit comments

Comments
 (0)