Commit 87d09301 authored by yue9944882's avatar yue9944882

add new flag for enabling requests mgmt handler

parent 6630d7c5
...@@ -18,6 +18,7 @@ package options ...@@ -18,6 +18,7 @@ package options
import ( import (
"fmt" "fmt"
"k8s.io/apiserver/pkg/features"
"net" "net"
"time" "time"
...@@ -49,8 +50,9 @@ type ServerRunOptions struct { ...@@ -49,8 +50,9 @@ type ServerRunOptions struct {
// decoded in a write request. 0 means no limit. // decoded in a write request. 0 means no limit.
// We intentionally did not add a flag for this option. Users of the // We intentionally did not add a flag for this option. Users of the
// apiserver library can wire it to a flag. // apiserver library can wire it to a flag.
MaxRequestBodyBytes int64 MaxRequestBodyBytes int64
TargetRAMMB int TargetRAMMB int
EnableInfightQuotaHandler bool
} }
func NewServerRunOptions() *ServerRunOptions { func NewServerRunOptions() *ServerRunOptions {
...@@ -104,11 +106,27 @@ func (s *ServerRunOptions) Validate() []error { ...@@ -104,11 +106,27 @@ func (s *ServerRunOptions) Validate() []error {
if s.TargetRAMMB < 0 { if s.TargetRAMMB < 0 {
errors = append(errors, fmt.Errorf("--target-ram-mb can not be negative value")) errors = append(errors, fmt.Errorf("--target-ram-mb can not be negative value"))
} }
if s.MaxRequestsInFlight < 0 {
errors = append(errors, fmt.Errorf("--max-requests-inflight can not be negative value")) if s.EnableInfightQuotaHandler {
} if !utilfeature.DefaultFeatureGate.Enabled(features.RequestManagement) {
if s.MaxMutatingRequestsInFlight < 0 { errors = append(errors, fmt.Errorf("--enable-inflight-quota-handler can not be set if feature "+
errors = append(errors, fmt.Errorf("--max-mutating-requests-inflight can not be negative value")) "gate RequestManagement is disabled"))
}
if s.MaxMutatingRequestsInFlight != 0 {
errors = append(errors, fmt.Errorf("--max-mutating-requests-inflight=%v "+
"can not be set if enabled inflight quota handler", s.MaxMutatingRequestsInFlight))
}
if s.MaxRequestsInFlight != 0 {
errors = append(errors, fmt.Errorf("--max-requests-inflight=%v "+
"can not be set if enabled inflight quota handler", s.MaxRequestsInFlight))
}
} else {
if s.MaxRequestsInFlight < 0 {
errors = append(errors, fmt.Errorf("--max-requests-inflight can not be negative value"))
}
if s.MaxMutatingRequestsInFlight < 0 {
errors = append(errors, fmt.Errorf("--max-mutating-requests-inflight can not be negative value"))
}
} }
if s.RequestTimeout.Nanoseconds() < 0 { if s.RequestTimeout.Nanoseconds() < 0 {
...@@ -174,5 +192,8 @@ func (s *ServerRunOptions) AddUniversalFlags(fs *pflag.FlagSet) { ...@@ -174,5 +192,8 @@ func (s *ServerRunOptions) AddUniversalFlags(fs *pflag.FlagSet) {
"handler, which picks a randomized value above this number as the connection timeout, "+ "handler, which picks a randomized value above this number as the connection timeout, "+
"to spread out load.") "to spread out load.")
fs.BoolVar(&s.EnableInfightQuotaHandler, "enable-inflight-quota-handler", s.EnableInfightQuotaHandler, ""+
"If true, replace the max-in-flight handler with an enhanced one that queues and dispatches with priority and fairness")
utilfeature.DefaultMutableFeatureGate.AddFlag(fs) utilfeature.DefaultMutableFeatureGate.AddFlag(fs)
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment