K8s: Improve OpenAPI behaviour (#81606)

pull/81609/head
Ryan McKinley 1 year ago committed by GitHub
parent 6fc1a6a54f
commit 2ffd56c23b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 14
      pkg/services/grafana-apiserver/helper.go
  2. 1
      public/views/swagger.html

@ -7,12 +7,14 @@ import (
"strings" "strings"
"time" "time"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/version" "k8s.io/apimachinery/pkg/version"
openapinamer "k8s.io/apiserver/pkg/endpoints/openapi" openapinamer "k8s.io/apiserver/pkg/endpoints/openapi"
"k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/generic"
genericapiserver "k8s.io/apiserver/pkg/server" genericapiserver "k8s.io/apiserver/pkg/server"
"k8s.io/apiserver/pkg/util/openapi" "k8s.io/apiserver/pkg/util/openapi"
"k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/kubernetes/scheme"
"k8s.io/kube-openapi/pkg/common"
"github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/setting"
) )
@ -27,6 +29,18 @@ func SetupConfig(serverConfig *genericapiserver.RecommendedConfig, builders []AP
openapi.GetOpenAPIDefinitionsWithoutDisabledFeatures(defsGetter), openapi.GetOpenAPIDefinitionsWithoutDisabledFeatures(defsGetter),
openapinamer.NewDefinitionNamer(Scheme, scheme.Scheme)) openapinamer.NewDefinitionNamer(Scheme, scheme.Scheme))
serverConfig.OpenAPIV3Config.GetOperationIDAndTagsFromRoute = func(r common.Route) (string, []string, error) {
tags := []string{}
prop, ok := r.Metadata()["x-kubernetes-group-version-kind"]
if ok {
gvk, ok := prop.(metav1.GroupVersionKind)
if ok && gvk.Kind != "" {
tags = append(tags, gvk.Kind)
}
}
return r.OperationName(), tags, nil
}
// Add the custom routes to service discovery // Add the custom routes to service discovery
serverConfig.OpenAPIV3Config.PostProcessSpec = getOpenAPIPostProcessor(builders) serverConfig.OpenAPIV3Config.PostProcessSpec = getOpenAPIPostProcessor(builders)

@ -98,6 +98,7 @@
filter: true, filter: true,
tagsSorter: 'alpha', tagsSorter: 'alpha',
tryItOutEnabled: true, tryItOutEnabled: true,
queryConfigEnabled: true, // keeps the selected ?urls.primaryName=...
}); });
window.ui = ui; window.ui = ui;

Loading…
Cancel
Save