diff --git a/cmd/descheduler/app/options/options.go b/cmd/descheduler/app/options/options.go index 3d84c3158..f5a24b512 100644 --- a/cmd/descheduler/app/options/options.go +++ b/cmd/descheduler/app/options/options.go @@ -142,8 +142,10 @@ func (rs *DeschedulerServer) Apply() error { return err } - secureServing.DisableHTTP2 = !rs.EnableHTTP2 - rs.SecureServingInfo = secureServing + if secureServing != nil { + secureServing.DisableHTTP2 = !rs.EnableHTTP2 + rs.SecureServingInfo = secureServing + } return nil } diff --git a/cmd/descheduler/app/server.go b/cmd/descheduler/app/server.go index 8b18d2f11..7ecaf04e2 100644 --- a/cmd/descheduler/app/server.go +++ b/cmd/descheduler/app/server.go @@ -97,10 +97,14 @@ func Run(rootCtx context.Context, rs *options.DeschedulerServer) error { healthz.InstallHandler(pathRecorderMux, healthz.NamedCheck("Descheduler", healthz.PingHealthz.Check)) - stoppedCh, _, err := rs.SecureServingInfo.Serve(pathRecorderMux, 0, ctx.Done()) - if err != nil { - klog.Fatalf("failed to start secure server: %v", err) - return err + var stoppedCh <-chan struct{} + var err error + if rs.SecureServingInfo != nil { + stoppedCh, _, err = rs.SecureServingInfo.Serve(pathRecorderMux, 0, ctx.Done()) + if err != nil { + klog.Fatalf("failed to start secure server: %v", err) + return err + } } err = tracing.NewTracerProvider(ctx, rs.Tracing.CollectorEndpoint, rs.Tracing.TransportCert, rs.Tracing.ServiceName, rs.Tracing.ServiceNamespace, rs.Tracing.SampleRate, rs.Tracing.FallbackToNoOpProviderOnError) @@ -118,8 +122,10 @@ func Run(rootCtx context.Context, rs *options.DeschedulerServer) error { } done() - // wait for metrics server to close - <-stoppedCh + if stoppedCh != nil { + // wait for metrics server to close + <-stoppedCh + } return nil }