Skip to content

Commit 82c3432

Browse files
authored
Merge pull request #198 from cleverhu/remove-flowcontrol-controller-of-apiserver
remove flowcontrol controller of apiserver
2 parents fa3c19c + 179ceb1 commit 82c3432

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

cmd/apiserver/app/options/options.go

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,21 @@ import (
66

77
utilerrors "k8s.io/apimachinery/pkg/util/errors"
88
"k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle"
9-
"k8s.io/apiserver/pkg/features"
109
genericapiserver "k8s.io/apiserver/pkg/server"
1110
genericoptions "k8s.io/apiserver/pkg/server/options"
1211
"k8s.io/apiserver/pkg/util/feature"
13-
utilfeature "k8s.io/apiserver/pkg/util/feature"
14-
utilflowcontrol "k8s.io/apiserver/pkg/util/flowcontrol"
15-
"k8s.io/client-go/kubernetes"
1612
cliflag "k8s.io/component-base/cli/flag"
1713
"k8s.io/component-base/featuregate"
18-
"k8s.io/klog/v2"
1914

2015
"github.com/clusterpedia-io/clusterpedia/pkg/apiserver"
2116
"github.com/clusterpedia-io/clusterpedia/pkg/storage"
2217
storageoptions "github.com/clusterpedia-io/clusterpedia/pkg/storage/options"
2318
)
2419

2520
type ClusterPediaServerOptions struct {
21+
MaxRequestsInFlight int
22+
MaxMutatingRequestsInFlight int
23+
2624
SecureServing *genericoptions.SecureServingOptionsWithLoopback
2725
Authentication *genericoptions.DelegatingAuthenticationOptions
2826
Authorization *genericoptions.DelegatingAuthorizationOptions
@@ -31,7 +29,7 @@ type ClusterPediaServerOptions struct {
3129
CoreAPI *genericoptions.CoreAPIOptions
3230
FeatureGate featuregate.FeatureGate
3331
Admission *genericoptions.AdmissionOptions
34-
// Traces *genericoptions.TracingOptions
32+
// Traces *genericoptions.TracingOptions
3533

3634
Storage *storageoptions.StorageOptions
3735
}
@@ -46,6 +44,9 @@ func NewServerOptions() *ClusterPediaServerOptions {
4644
sso.HTTP2MaxStreamsPerConnection = 1000
4745

4846
return &ClusterPediaServerOptions{
47+
MaxRequestsInFlight: 0,
48+
MaxMutatingRequestsInFlight: 0,
49+
4950
SecureServing: sso.WithLoopback(),
5051
Authentication: genericoptions.NewDelegatingAuthenticationOptions(),
5152
Authorization: genericoptions.NewDelegatingAuthorizationOptions(),
@@ -54,7 +55,7 @@ func NewServerOptions() *ClusterPediaServerOptions {
5455
CoreAPI: genericoptions.NewCoreAPIOptions(),
5556
FeatureGate: feature.DefaultFeatureGate,
5657
Admission: genericoptions.NewAdmissionOptions(),
57-
// Traces: genericoptions.NewTracingOptions(),
58+
// Traces: genericoptions.NewTracingOptions(),
5859

5960
Storage: storageoptions.NewStorageOptions(),
6061
}
@@ -102,6 +103,9 @@ func (o *ClusterPediaServerOptions) Config() (*apiserver.Config, error) {
102103
}
103104

104105
func (o *ClusterPediaServerOptions) genericOptionsApplyTo(config *genericapiserver.RecommendedConfig) error {
106+
config.MaxRequestsInFlight = o.MaxRequestsInFlight
107+
config.MaxMutatingRequestsInFlight = o.MaxMutatingRequestsInFlight
108+
105109
if err := o.SecureServing.ApplyTo(&config.SecureServing, &config.LoopbackClientConfig); err != nil {
106110
return err
107111
}
@@ -124,24 +128,18 @@ func (o *ClusterPediaServerOptions) genericOptionsApplyTo(config *genericapiserv
124128
return err
125129
}
126130

127-
if utilfeature.DefaultFeatureGate.Enabled(features.APIPriorityAndFairness) {
128-
if config.ClientConfig != nil {
129-
config.FlowControl = utilflowcontrol.New(
130-
config.SharedInformerFactory,
131-
kubernetes.NewForConfigOrDie(config.ClientConfig).FlowcontrolV1beta1(),
132-
config.MaxRequestsInFlight+config.MaxMutatingRequestsInFlight,
133-
config.RequestTimeout/4,
134-
)
135-
} else {
136-
klog.Warningf("Neither kubeconfig is provided nor service-account is mounted, so APIPriorityAndFairness will be disabled")
137-
}
138-
}
139131
return nil
140132
}
141133

142134
func (o *ClusterPediaServerOptions) Flags() cliflag.NamedFlagSets {
143135
var fss cliflag.NamedFlagSets
144136

137+
genericfs := fss.FlagSet("generic")
138+
genericfs.IntVar(&o.MaxRequestsInFlight, "max-requests-inflight", o.MaxRequestsInFlight, ""+
139+
"Otherwise, this flag limits the maximum number of non-mutating requests in flight, or a zero value disables the limit completely.")
140+
genericfs.IntVar(&o.MaxMutatingRequestsInFlight, "max-mutating-requests-inflight", o.MaxMutatingRequestsInFlight, ""+
141+
"this flag limits the maximum number of mutating requests in flight, or a zero value disables the limit completely.")
142+
145143
o.CoreAPI.AddFlags(fss.FlagSet("global"))
146144
o.SecureServing.AddFlags(fss.FlagSet("secure serving"))
147145
o.Authentication.AddFlags(fss.FlagSet("authentication"))
@@ -158,6 +156,13 @@ func (o *ClusterPediaServerOptions) Flags() cliflag.NamedFlagSets {
158156

159157
func (o *ClusterPediaServerOptions) validateGenericOptions() []error {
160158
errors := []error{}
159+
if o.MaxRequestsInFlight < 0 {
160+
errors = append(errors, fmt.Errorf("--max-requests-inflight can not be negative value"))
161+
}
162+
if o.MaxMutatingRequestsInFlight < 0 {
163+
errors = append(errors, fmt.Errorf("--max-mutating-requests-inflight can not be negative value"))
164+
}
165+
161166
errors = append(errors, o.CoreAPI.Validate()...)
162167
errors = append(errors, o.SecureServing.Validate()...)
163168
errors = append(errors, o.Authentication.Validate()...)

0 commit comments

Comments
 (0)