diff --git a/cmd/descheduler/app/options/options.go b/cmd/descheduler/app/options/options.go index 888f8638bc..b8f8db26ab 100644 --- a/cmd/descheduler/app/options/options.go +++ b/cmd/descheduler/app/options/options.go @@ -44,6 +44,7 @@ type DeschedulerServer struct { EventClient clientset.Interface SecureServing *apiserveroptions.SecureServingOptionsWithLoopback DisableMetrics bool + EnableHTTP2 bool } // NewDeschedulerServer creates a new DeschedulerServer with default parameters @@ -101,6 +102,7 @@ func (rs *DeschedulerServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&rs.Tracing.ServiceNamespace, "otel-trace-namespace", "", "OTEL Trace namespace to be used with the resources") fs.Float64Var(&rs.Tracing.SampleRate, "otel-sample-rate", 1.0, "Sample rate to collect the Traces") fs.BoolVar(&rs.Tracing.FallbackToNoOpProviderOnError, "otel-fallback-no-op-on-error", false, "Fallback to NoOp Tracer in case of error") + fs.BoolVar(&rs.EnableHTTP2, "enable-http2", false, "If http/2 should be enabled for the metrics and health check") componentbaseoptions.BindLeaderElectionFlags(&rs.LeaderElection, fs) diff --git a/cmd/descheduler/app/server.go b/cmd/descheduler/app/server.go index 2d010f6a26..9cf8822f2a 100644 --- a/cmd/descheduler/app/server.go +++ b/cmd/descheduler/app/server.go @@ -65,6 +65,8 @@ func NewDeschedulerCommand(out io.Writer) *cobra.Command { return } + SecureServing.DisableHTTP2 = !s.EnableHTTP2 + var factory registry.LogFormatFactory if s.Logging.Format == "json" { factory = jsonLog.Factory{} diff --git a/docs/cli/descheduler.md b/docs/cli/descheduler.md index 7472cdbdac..1dbc3e0fb8 100644 --- a/docs/cli/descheduler.md +++ b/docs/cli/descheduler.md @@ -21,6 +21,7 @@ descheduler [flags] --descheduling-interval duration Time interval between two consecutive descheduler executions. Setting this value instructs the descheduler to run in a continuous loop at the interval specified. --disable-metrics Disables metrics. The metrics are by default served through https://localhost:10258/metrics. Secure address, resp. port can be changed through --bind-address, resp. --secure-port flags. --dry-run Execute descheduler in dry run mode. + --enable-http2 If http/2 should be enabled for the metrics and health check -h, --help help for descheduler --http2-max-streams-per-connection int The limit that the server gives to clients for the maximum number of streams in an HTTP/2 connection. Zero means to use golang's default. --kubeconfig string File with kube configuration. Deprecated, use client-connection-kubeconfig instead.