diff --git a/cmd/adapter/adapter.go b/cmd/adapter/adapter.go index 7407dcdb..ed14e4f6 100644 --- a/cmd/adapter/adapter.go +++ b/cmd/adapter/adapter.go @@ -29,7 +29,9 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" openapinamer "k8s.io/apiserver/pkg/endpoints/openapi" + "k8s.io/apiserver/pkg/features" genericapiserver "k8s.io/apiserver/pkg/server" + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/metadata" "k8s.io/client-go/metadata/metadatainformer" "k8s.io/client-go/rest" @@ -292,15 +294,23 @@ func main() { } cmd.Name = "prometheus-metrics-adapter" - cmd.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions, openapinamer.NewDefinitionNamer(api.Scheme, customexternalmetrics.Scheme)) - cmd.OpenAPIConfig.Info.Title = "prometheus-metrics-adapter" - cmd.OpenAPIConfig.Info.Version = "1.0.0" - cmd.addFlags() if err := cmd.Flags().Parse(os.Args); err != nil { klog.Fatalf("unable to parse flags: %v", err) } + if cmd.OpenAPIConfig == nil { + cmd.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions, openapinamer.NewDefinitionNamer(api.Scheme, customexternalmetrics.Scheme)) + cmd.OpenAPIConfig.Info.Title = "prometheus-metrics-adapter" + cmd.OpenAPIConfig.Info.Version = "1.0.0" + } + + if cmd.OpenAPIV3Config == nil && utilfeature.DefaultFeatureGate.Enabled(features.OpenAPIV3) { + cmd.OpenAPIV3Config = genericapiserver.DefaultOpenAPIV3Config(generatedopenapi.GetOpenAPIDefinitions, openapinamer.NewDefinitionNamer(api.Scheme, customexternalmetrics.Scheme)) + cmd.OpenAPIV3Config.Info.Title = "prometheus-metrics-adapter" + cmd.OpenAPIV3Config.Info.Version = "1.0.0" + } + // if --metrics-max-age is not set, make it equal to --metrics-relist-interval if cmd.MetricsMaxAge == 0*time.Second { cmd.MetricsMaxAge = cmd.MetricsRelistInterval