K8s/Folders: Use v1beta1 and app-sdk based spec (#103975)

This commit is contained in:
Ryan McKinley
2025-04-14 23:20:10 +03:00
committed by GitHub
parent acfd998fa6
commit 0283c98e30
90 changed files with 1255 additions and 2407 deletions
@@ -10,7 +10,7 @@ import (
dashboardv0alpha1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1"
dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1"
dashboardv2alpha1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1"
folders "github.com/grafana/grafana/pkg/apis/folder/v1"
folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1"
"github.com/grafana/grafana/pkg/apiserver/rest"
"github.com/grafana/grafana/pkg/services/featuremgmt"
"github.com/grafana/grafana/pkg/services/folder"
+51 -51
View File
@@ -7,7 +7,6 @@ import (
"fmt"
"net/http"
"slices"
"testing"
"github.com/stretchr/testify/require"
@@ -16,9 +15,9 @@ import (
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema"
folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1"
"github.com/grafana/grafana/pkg/api"
"github.com/grafana/grafana/pkg/api/dtos"
folders "github.com/grafana/grafana/pkg/apis/folder/v1"
grafanarest "github.com/grafana/grafana/pkg/apiserver/rest"
"github.com/grafana/grafana/pkg/services/accesscontrol/resourcepermissions"
"github.com/grafana/grafana/pkg/services/dashboards"
@@ -37,8 +36,8 @@ func TestMain(m *testing.M) {
}
var gvr = schema.GroupVersionResource{
Group: "folder.grafana.app",
Version: "v1",
Group: folders.GROUP,
Version: folders.VERSION,
Resource: "folders",
}
@@ -55,7 +54,7 @@ func TestIntegrationFoldersApp(t *testing.T) {
t.Run("Check discovery client", func(t *testing.T) {
disco := helper.NewDiscoveryClient()
resources, err := disco.ServerResourcesForGroupVersion("folder.grafana.app/v1")
resources, err := disco.ServerResourcesForGroupVersion("folder.grafana.app/v1beta1")
require.NoError(t, err)
v1Disco, err := json.MarshalIndent(resources, "", " ")
@@ -64,52 +63,52 @@ func TestIntegrationFoldersApp(t *testing.T) {
require.JSONEq(t, `{
"kind": "APIResourceList",
"apiVersion": "v1",
"groupVersion": "folder.grafana.app/v1",
"groupVersion": "folder.grafana.app/v1beta1",
"resources": [
{
"name": "folders",
"singularName": "folder",
"namespaced": true,
"kind": "Folder",
"verbs": [
"create",
"delete",
"deletecollection",
"get",
"list",
"patch",
"update"
]
},
{
"name": "folders/access",
"singularName": "",
"namespaced": true,
"kind": "FolderAccessInfo",
"verbs": [
"get"
]
},
{
"name": "folders/counts",
"singularName": "",
"namespaced": true,
"kind": "DescendantCounts",
"verbs": [
"get"
]
},
{
"name": "folders/parents",
"singularName": "",
"namespaced": true,
"kind": "FolderInfoList",
"verbs": [
"get"
]
}
{
"name": "folders",
"singularName": "folder",
"namespaced": true,
"kind": "Folder",
"verbs": [
"create",
"delete",
"deletecollection",
"get",
"list",
"patch",
"update"
]
},
{
"name": "folders/access",
"singularName": "",
"namespaced": true,
"kind": "FolderAccessInfo",
"verbs": [
"get"
]
},
{
"name": "folders/counts",
"singularName": "",
"namespaced": true,
"kind": "DescendantCounts",
"verbs": [
"get"
]
},
{
"name": "folders/parents",
"singularName": "",
"namespaced": true,
"kind": "FolderInfoList",
"verbs": [
"get"
]
}
]
}`, string(v1Disco))
}`, string(v1Disco))
})
t.Run("with dual write (unified storage, mode 0)", func(t *testing.T) {
@@ -238,7 +237,7 @@ func doFolderTests(t *testing.T, helper *apis.K8sTestHelper) *apis.K8sTestHelper
require.NotEmpty(t, uid)
expectedResult := `{
"apiVersion": "folder.grafana.app/v1",
"apiVersion": "folder.grafana.app/v1beta1",
"kind": "Folder",
"metadata": {
"creationTimestamp": "${creationTimestamp}",
@@ -250,7 +249,8 @@ func doFolderTests(t *testing.T, helper *apis.K8sTestHelper) *apis.K8sTestHelper
},
"spec": {
"title": "Test"
}
},
"status": {}
}`
// Get should return the same result
+1 -1
View File
@@ -1,4 +1,4 @@
apiVersion: folder.grafana.app/v1
apiVersion: folder.grafana.app/v1beta1
kind: Folder
metadata:
generateName: x # anything is ok here... except yes or true -- they become boolean!
+1 -1
View File
@@ -1,4 +1,4 @@
apiVersion: folder.grafana.app/v1
apiVersion: folder.grafana.app/v1beta1
kind: Folder
metadata:
name: test
+1 -1
View File
@@ -1,4 +1,4 @@
apiVersion: folder.grafana.app/v1
apiVersion: folder.grafana.app/v1beta1
kind: Folder
metadata:
name: test
File diff suppressed because it is too large Load Diff
@@ -2,10 +2,10 @@
"openapi": "3.0.0",
"info": {
"description": "Grafana folders",
"title": "folder.grafana.app/v0alpha1"
"title": "folder.grafana.app/v1beta1"
},
"paths": {
"/apis/folder.grafana.app/v0alpha1/": {
"/apis/folder.grafana.app/v1beta1/": {
"get": {
"tags": [
"API Discovery"
@@ -36,7 +36,7 @@
}
}
},
"/apis/folder.grafana.app/v0alpha1/namespaces/{namespace}/folders": {
"/apis/folder.grafana.app/v1beta1/namespaces/{namespace}/folders": {
"get": {
"tags": [
"Folder"
@@ -141,27 +141,27 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderList"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderList"
}
},
"application/json;stream=watch": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderList"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderList"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderList"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderList"
}
},
"application/vnd.kubernetes.protobuf;stream=watch": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderList"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderList"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderList"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderList"
}
}
}
@@ -170,7 +170,7 @@
"x-kubernetes-action": "list",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "Folder"
}
},
@@ -213,17 +213,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
},
@@ -235,17 +235,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
}
@@ -255,17 +255,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
}
@@ -275,17 +275,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
}
@@ -294,7 +294,7 @@
"x-kubernetes-action": "post",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "Folder"
}
},
@@ -448,7 +448,7 @@
"x-kubernetes-action": "deletecollection",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "Folder"
}
},
@@ -474,7 +474,7 @@
}
]
},
"/apis/folder.grafana.app/v0alpha1/namespaces/{namespace}/folders/{name}": {
"/apis/folder.grafana.app/v1beta1/namespaces/{namespace}/folders/{name}": {
"get": {
"tags": [
"Folder"
@@ -487,17 +487,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
}
@@ -506,7 +506,7 @@
"x-kubernetes-action": "get",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "Folder"
}
},
@@ -549,17 +549,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
},
@@ -571,17 +571,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
}
@@ -591,17 +591,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
}
@@ -610,7 +610,7 @@
"x-kubernetes-action": "put",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "Folder"
}
},
@@ -712,7 +712,7 @@
"x-kubernetes-action": "delete",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "Folder"
}
},
@@ -791,17 +791,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
}
@@ -811,17 +811,17 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/vnd.kubernetes.protobuf": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
},
"application/yaml": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
}
}
@@ -830,7 +830,7 @@
"x-kubernetes-action": "patch",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "Folder"
}
},
@@ -866,7 +866,7 @@
}
]
},
"/apis/folder.grafana.app/v0alpha1/namespaces/{namespace}/folders/{name}/access": {
"/apis/folder.grafana.app/v1beta1/namespaces/{namespace}/folders/{name}/access": {
"get": {
"tags": [
"Folder"
@@ -879,7 +879,7 @@
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderAccessInfo"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderAccessInfo"
}
}
}
@@ -888,7 +888,7 @@
"x-kubernetes-action": "connect",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "FolderAccessInfo"
}
},
@@ -915,7 +915,7 @@
}
]
},
"/apis/folder.grafana.app/v0alpha1/namespaces/{namespace}/folders/{name}/counts": {
"/apis/folder.grafana.app/v1beta1/namespaces/{namespace}/folders/{name}/counts": {
"get": {
"tags": [
"Folder"
@@ -928,7 +928,7 @@
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.DescendantCounts"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.DescendantCounts"
}
}
}
@@ -937,7 +937,7 @@
"x-kubernetes-action": "connect",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "DescendantCounts"
}
},
@@ -964,7 +964,7 @@
}
]
},
"/apis/folder.grafana.app/v0alpha1/namespaces/{namespace}/folders/{name}/parents": {
"/apis/folder.grafana.app/v1beta1/namespaces/{namespace}/folders/{name}/parents": {
"get": {
"tags": [
"Folder"
@@ -977,7 +977,7 @@
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderInfoList"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderInfoList"
}
}
}
@@ -986,7 +986,7 @@
"x-kubernetes-action": "connect",
"x-kubernetes-group-version-kind": {
"group": "folder.grafana.app",
"version": "v0alpha1",
"version": "v1beta1",
"kind": "FolderInfoList"
}
},
@@ -1016,7 +1016,7 @@
},
"components": {
"schemas": {
"com.github.grafana.grafana.pkg.apis.folder.v0alpha1.DescendantCounts": {
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.DescendantCounts": {
"type": "object",
"required": [
"counts"
@@ -1032,7 +1032,7 @@
"default": {},
"allOf": [
{
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.ResourceStats"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.ResourceStats"
}
]
}
@@ -1051,12 +1051,17 @@
{
"group": "folder.grafana.app",
"kind": "DescendantCounts",
"version": "v0alpha1"
"version": "v1beta1"
}
]
},
"com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder": {
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder": {
"type": "object",
"required": [
"metadata",
"spec",
"status"
],
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
@@ -1075,10 +1080,19 @@
]
},
"spec": {
"description": "Spec is the spec of the Folder",
"default": {},
"allOf": [
{
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Spec"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderSpec"
}
]
},
"status": {
"default": {},
"allOf": [
{
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderStatus"
}
]
}
@@ -1092,11 +1106,11 @@
{
"group": "folder.grafana.app",
"kind": "Folder",
"version": "v0alpha1"
"version": "v1beta1"
}
]
},
"com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderAccessInfo": {
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderAccessInfo": {
"description": "Access control information for the current user",
"type": "object",
"required": [
@@ -1140,11 +1154,11 @@
{
"group": "folder.grafana.app",
"kind": "FolderAccessInfo",
"version": "v0alpha1"
"version": "v1beta1"
}
]
},
"com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderInfo": {
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderInfo": {
"description": "FolderInfo briefly describes a folder -- unlike a folder resource, this is a partial record of the folder metadata used for navigating parents and children",
"type": "object",
"required": [
@@ -1176,7 +1190,7 @@
}
}
},
"com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderInfoList": {
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderInfoList": {
"description": "FolderInfoList returns a list of folder references (parents or children) Unlike FolderList, each item is not a full k8s object",
"type": "object",
"properties": {
@@ -1190,7 +1204,7 @@
"default": {},
"allOf": [
{
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderInfo"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderInfo"
}
]
},
@@ -1221,12 +1235,16 @@
{
"group": "folder.grafana.app",
"kind": "FolderInfoList",
"version": "v0alpha1"
"version": "v1beta1"
}
]
},
"com.github.grafana.grafana.pkg.apis.folder.v0alpha1.FolderList": {
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderList": {
"type": "object",
"required": [
"metadata",
"items"
],
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
@@ -1238,7 +1256,7 @@
"default": {},
"allOf": [
{
"$ref": "#/components/schemas/com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Folder"
"$ref": "#/components/schemas/com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.Folder"
}
]
}
@@ -1265,11 +1283,30 @@
{
"group": "folder.grafana.app",
"kind": "FolderList",
"version": "v0alpha1"
"version": "v1beta1"
}
]
},
"com.github.grafana.grafana.pkg.apis.folder.v0alpha1.ResourceStats": {
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderSpec": {
"type": "object",
"required": [
"title"
],
"properties": {
"description": {
"type": "string"
},
"title": {
"type": "string",
"default": ""
}
}
},
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.FolderStatus": {
"description": "Empty stub",
"type": "object"
},
"com.github.grafana.grafana.apps.folder.pkg.apis.folder.v1beta1.ResourceStats": {
"type": "object",
"required": [
"group",
@@ -1292,23 +1329,6 @@
}
}
},
"com.github.grafana.grafana.pkg.apis.folder.v0alpha1.Spec": {
"type": "object",
"required": [
"title"
],
"properties": {
"description": {
"description": "Describe the feature toggle",
"type": "string"
},
"title": {
"description": "Describe the feature toggle",
"type": "string",
"default": ""
}
}
},
"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": {
"description": "APIResource specifies the name of a resource and whether it is namespaced.",
"type": "object",
+1 -1
View File
@@ -71,7 +71,7 @@ func TestIntegrationOpenAPIs(t *testing.T) {
Version: "v2alpha1",
}, {
Group: "folder.grafana.app",
Version: "v1",
Version: "v1beta1",
}, {
Group: "provisioning.grafana.app",
Version: "v0alpha1",
+1 -1
View File
@@ -24,7 +24,7 @@ import (
"k8s.io/client-go/rest"
dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1"
folder "github.com/grafana/grafana/pkg/apis/folder/v1"
folder "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1"
provisioning "github.com/grafana/grafana/pkg/apis/provisioning/v0alpha1"
grafanarest "github.com/grafana/grafana/pkg/apiserver/rest"
"github.com/grafana/grafana/pkg/registry/apis/provisioning/jobs"