APIServer: Exclude internal GroupVersionKind from openapi (#107551)
This commit is contained in:
@@ -4,21 +4,23 @@ import (
|
||||
"maps"
|
||||
"strings"
|
||||
|
||||
common "k8s.io/kube-openapi/pkg/common"
|
||||
openapi "k8s.io/kube-openapi/pkg/common"
|
||||
"k8s.io/kube-openapi/pkg/spec3"
|
||||
spec "k8s.io/kube-openapi/pkg/validation/spec"
|
||||
|
||||
data "github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1"
|
||||
"github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1"
|
||||
common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1"
|
||||
secret "github.com/grafana/grafana/pkg/apis/secret/v0alpha1"
|
||||
)
|
||||
|
||||
// This should eventually live in grafana-app-sdk
|
||||
func GetOpenAPIDefinitions(builders []APIGroupBuilder) common.GetOpenAPIDefinitions {
|
||||
return func(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
|
||||
defs := v0alpha1.GetOpenAPIDefinitions(ref) // common grafana apis
|
||||
func GetOpenAPIDefinitions(builders []APIGroupBuilder) openapi.GetOpenAPIDefinitions {
|
||||
return func(ref openapi.ReferenceCallback) map[string]openapi.OpenAPIDefinition {
|
||||
defs := common.GetOpenAPIDefinitions(ref) // common grafana apis
|
||||
maps.Copy(defs, data.GetOpenAPIDefinitions(ref))
|
||||
maps.Copy(defs, secret.GetOpenAPIDefinitions(ref)) // Expose secret reference to all resources
|
||||
// TODO: add timerange to upstream SDK setup
|
||||
maps.Copy(defs, map[string]common.OpenAPIDefinition{
|
||||
maps.Copy(defs, map[string]openapi.OpenAPIDefinition{
|
||||
"github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1.TimeRange": {
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
@@ -117,8 +119,29 @@ func getOpenAPIPostProcessor(version string, builders []APIGroupBuilder) func(*s
|
||||
|
||||
// Remove the growing list of kinds
|
||||
for k, v := range copy.Components.Schemas {
|
||||
if strings.HasPrefix(k, "io.k8s.apimachinery.pkg.apis.meta.v1") && v.Extensions != nil {
|
||||
if v.Extensions == nil {
|
||||
continue
|
||||
}
|
||||
if strings.HasPrefix(k, "io.k8s.apimachinery.pkg.apis.meta.v1") {
|
||||
delete(v.Extensions, "x-kubernetes-group-version-kind") // a growing list of everything
|
||||
continue
|
||||
}
|
||||
|
||||
// Remove the internal annotations
|
||||
val, ok := v.Extensions["x-kubernetes-group-version-kind"]
|
||||
if ok {
|
||||
gvks, ok := val.([]any)
|
||||
if ok {
|
||||
keep := make([]map[string]any, 0, len(gvks))
|
||||
for _, val := range gvks {
|
||||
gvk, ok := val.(map[string]any)
|
||||
if ok && gvk["version"] == "__internal" {
|
||||
continue
|
||||
}
|
||||
keep = append(keep, gvk)
|
||||
}
|
||||
v.Extensions["x-kubernetes-group-version-kind"] = keep
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1740,11 +1740,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "advisor.grafana.app",
|
||||
"kind": "Check",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "advisor.grafana.app",
|
||||
"kind": "Check",
|
||||
@@ -1807,11 +1802,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "advisor.grafana.app",
|
||||
"kind": "CheckList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "advisor.grafana.app",
|
||||
"kind": "CheckList",
|
||||
@@ -1957,11 +1947,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "advisor.grafana.app",
|
||||
"kind": "CheckType",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "advisor.grafana.app",
|
||||
"kind": "CheckType",
|
||||
@@ -2005,11 +1990,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "advisor.grafana.app",
|
||||
"kind": "CheckTypeList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "advisor.grafana.app",
|
||||
"kind": "CheckTypeList",
|
||||
|
||||
@@ -1043,11 +1043,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "DescendantCounts",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "DescendantCounts",
|
||||
@@ -1098,11 +1093,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "Folder",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "Folder",
|
||||
@@ -1146,11 +1136,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "FolderAccessInfo",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "FolderAccessInfo",
|
||||
@@ -1230,11 +1215,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "FolderInfoList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "FolderInfoList",
|
||||
@@ -1278,11 +1258,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "FolderList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "folder.grafana.app",
|
||||
"kind": "FolderList",
|
||||
|
||||
@@ -1824,11 +1824,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "SSOSetting",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "SSOSetting",
|
||||
@@ -1871,11 +1866,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "SSOSettingList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "SSOSettingList",
|
||||
@@ -1934,11 +1924,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "ServiceAccount",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "ServiceAccount",
|
||||
@@ -1981,11 +1966,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "ServiceAccountList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "ServiceAccountList",
|
||||
@@ -2075,11 +2055,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "Team",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "Team",
|
||||
@@ -2116,11 +2091,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "TeamBinding",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "TeamBinding",
|
||||
@@ -2163,11 +2133,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "TeamBindingList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "TeamBindingList",
|
||||
@@ -2234,11 +2199,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "TeamList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "TeamList",
|
||||
@@ -2324,11 +2284,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "TeamMemberList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "TeamMemberList",
|
||||
@@ -2410,11 +2365,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "User",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "User",
|
||||
@@ -2457,11 +2407,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "UserList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "UserList",
|
||||
@@ -2548,11 +2493,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "UserTeamList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "iam.grafana.app",
|
||||
"kind": "UserTeamList",
|
||||
|
||||
@@ -1741,11 +1741,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "investigations.grafana.app",
|
||||
"kind": "Investigation",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "investigations.grafana.app",
|
||||
"kind": "Investigation",
|
||||
@@ -1892,11 +1887,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "investigations.grafana.app",
|
||||
"kind": "InvestigationIndex",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "investigations.grafana.app",
|
||||
"kind": "InvestigationIndex",
|
||||
@@ -2031,11 +2021,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "investigations.grafana.app",
|
||||
"kind": "InvestigationIndexList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "investigations.grafana.app",
|
||||
"kind": "InvestigationIndexList",
|
||||
@@ -2218,11 +2203,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "investigations.grafana.app",
|
||||
"kind": "InvestigationList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "investigations.grafana.app",
|
||||
"kind": "InvestigationList",
|
||||
|
||||
@@ -3401,11 +3401,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "Receiver",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "Receiver",
|
||||
@@ -3481,11 +3476,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "ReceiverList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "ReceiverList",
|
||||
@@ -3614,11 +3604,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "RoutingTree",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "RoutingTree",
|
||||
@@ -3662,11 +3647,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "RoutingTreeList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "RoutingTreeList",
|
||||
@@ -3916,11 +3896,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "TemplateGroup",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "TemplateGroup",
|
||||
@@ -3964,11 +3939,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "TemplateGroupList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "TemplateGroupList",
|
||||
@@ -4090,11 +4060,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "TimeInterval",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "TimeInterval",
|
||||
@@ -4185,11 +4150,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "TimeIntervalList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "notifications.alerting.grafana.app",
|
||||
"kind": "TimeIntervalList",
|
||||
|
||||
@@ -911,11 +911,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "playlist.grafana.app",
|
||||
"kind": "Playlist",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "playlist.grafana.app",
|
||||
"kind": "Playlist",
|
||||
@@ -978,11 +973,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "playlist.grafana.app",
|
||||
"kind": "PlaylistList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "playlist.grafana.app",
|
||||
"kind": "PlaylistList",
|
||||
|
||||
@@ -2776,11 +2776,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "Job",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "Job",
|
||||
@@ -2823,11 +2818,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "JobList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "JobList",
|
||||
@@ -3085,11 +3075,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "Repository",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "Repository",
|
||||
@@ -3133,11 +3118,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "RepositoryList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "RepositoryList",
|
||||
@@ -3426,11 +3406,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "ResourceList",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "ResourceList",
|
||||
@@ -3737,11 +3712,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "ResourceWrapper",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "ResourceWrapper",
|
||||
@@ -3887,11 +3857,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "TestResults",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "TestResults",
|
||||
@@ -3929,11 +3894,6 @@
|
||||
}
|
||||
},
|
||||
"x-kubernetes-group-version-kind": [
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "WebhookResponse",
|
||||
"version": "__internal"
|
||||
},
|
||||
{
|
||||
"group": "provisioning.grafana.app",
|
||||
"kind": "WebhookResponse",
|
||||
|
||||
Reference in New Issue
Block a user