From ed408985fa7f45d465024b03af04a8f6fd8416c2 Mon Sep 17 00:00:00 2001 From: Stephanie Hingtgen Date: Wed, 23 Apr 2025 12:21:59 -0600 Subject: [PATCH] [release-12.0.1] K8s: Dashboards: Mark as v1beta1 (#104422) Co-authored-by: Ryan McKinley --- Makefile | 12 +- apps/dashboard/Makefile | 12 +- apps/dashboard/kinds/dashboard.cue | 6 +- .../{v1alpha1 => v1beta1}/dashboard_spec.cue | 2 +- .../v1alpha1/zz_generated.conversion.go | 175 ------------------ .../{v1alpha1 => v1beta1}/constants.go | 4 +- .../dashboard_codec_gen.go | 2 +- .../{v1alpha1 => v1beta1}/dashboard_kind.cue | 0 .../dashboard_metadata_gen.go | 2 +- .../dashboard_object_gen.go | 2 +- .../dashboard_schema_gen.go | 4 +- .../{v1alpha1 => v1beta1}/dashboard_spec.go | 2 +- .../dashboard_spec_gen.go | 2 +- .../dashboard_status_gen.go | 2 +- .../dashboard/{v1alpha1 => v1beta1}/doc.go | 2 +- .../{v1alpha1 => v1beta1}/register.go | 4 +- .../dashboard/{v1alpha1 => v1beta1}/types.go | 2 +- .../{v1alpha1 => v1beta1}/validation.go | 3 +- .../v1beta1/zz_generated.conversion.go | 175 ++++++++++++++++++ .../zz_generated.deepcopy.go | 2 +- .../zz_generated.defaults.go | 2 +- .../zz_generated.openapi.go | 114 ++++++------ ...enerated.openapi_violation_exceptions.list | 4 +- apps/dashboard/pkg/apis/dashboard_manifest.go | 2 +- .../pkg/migration/conversion/conversion.go | 2 +- .../migration/conversion/conversion_test.go | 2 +- apps/dashboard/pkg/migration/migrate.go | 4 +- conf/provisioning/sample/dashboard-v1.json | 2 +- .../folder-A/folder-B/dashboard-nested.json | 2 +- .../dashboard_object_gen.ts | 0 .../types.metadata.gen.ts | 0 .../{v1alpha1 => v1beta1}/types.spec.gen.ts | 0 .../{v1alpha1 => v1beta1}/types.status.gen.ts | 0 pkg/api/dashboard.go | 5 +- pkg/api/dtos/dashboard.go | 2 +- .../datamigrations/to_unified_storage.go | 2 +- pkg/registry/apis/dashboard/large.go | 2 +- pkg/registry/apis/dashboard/large_test.go | 2 +- pkg/registry/apis/dashboard/legacy/migrate.go | 2 +- .../apis/dashboard/legacy/sql_dashboards.go | 57 +++--- .../dashboard/legacy/sql_dashboards_test.go | 33 ++-- pkg/registry/apis/dashboard/legacy/storage.go | 2 +- .../apis/dashboard/legacy/storage_test.go | 2 +- pkg/registry/apis/dashboard/legacy/types.go | 11 +- .../dashboard/legacysearcher/search_client.go | 2 +- .../legacysearcher/search_client_test.go | 2 +- pkg/registry/apis/dashboard/mutate.go | 8 +- pkg/registry/apis/dashboard/mutation_test.go | 15 +- pkg/registry/apis/dashboard/register.go | 2 +- pkg/registry/apis/dashboard/register_test.go | 15 +- .../apis/dashboard/schema_validation.go | 28 +-- pkg/registry/apis/dashboard/search.go | 5 +- .../provisioning/jobs/pullrequest/changes.go | 2 +- .../apis/provisioning/resources/client.go | 2 +- .../provisioning/resources/parser_test.go | 2 +- .../apiserver/standalone/runtime_test.go | 7 +- pkg/services/authz/zanzana/common/tuple.go | 6 +- pkg/services/authz/zanzana/translations.go | 2 +- .../dashboards/service/client/client.go | 2 +- .../dashboards/service/client/client_test.go | 2 +- .../service/dashboard_service_test.go | 2 +- pkg/services/folder/folderimpl/folder.go | 2 +- .../provisioning/dashboards/dashboard.go | 2 +- pkg/storage/legacysql/dualwrite/utils.go | 2 +- pkg/storage/legacysql/dualwrite/utils_test.go | 2 +- pkg/storage/unified/apistore/fake_large.go | 5 +- pkg/storage/unified/apistore/managed_test.go | 2 +- pkg/storage/unified/apistore/prepare_test.go | 2 +- pkg/storage/unified/resource/search.go | 2 +- pkg/storage/unified/search/dashboard.go | 2 +- pkg/tests/apis/dashboard/dashboards_test.go | 26 +-- .../integration/api_validation_test.go | 51 ++--- .../dashboard/testdata/dashboard-test-v1.yaml | 2 +- ...son => dashboard.grafana.app-v1beta1.json} | 136 +++++++------- pkg/tests/apis/openapi_test.go | 2 +- pkg/tests/apis/provisioning/client_test.go | 17 +- .../root_dashboard.json | 2 +- pkg/tests/apis/provisioning/helper_test.go | 2 +- .../DashboardScenePageStateManager.test.ts | 4 +- public/app/features/dashboard/api/types.ts | 2 +- public/app/features/dashboard/api/v1.test.ts | 4 +- public/app/features/dashboard/api/v1.ts | 2 +- public/app/features/dashboard/api/v2.test.ts | 4 +- public/app/features/dashboard/api/v2.ts | 1 + 84 files changed, 532 insertions(+), 517 deletions(-) rename apps/dashboard/kinds/{v1alpha1 => v1beta1}/dashboard_spec.cue (90%) delete mode 100644 apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.conversion.go rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/constants.go (91%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/dashboard_codec_gen.go (97%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/dashboard_kind.cue (100%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/dashboard_metadata_gen.go (98%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/dashboard_object_gen.go (99%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/dashboard_schema_gen.go (89%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/dashboard_spec.go (93%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/dashboard_spec_gen.go (75%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/dashboard_status_gen.go (98%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/doc.go (80%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/register.go (98%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/types.go (99%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/validation.go (99%) create mode 100644 apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.conversion.go rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/zz_generated.deepcopy.go (99%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/zz_generated.defaults.go (96%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/zz_generated.openapi.go (84%) rename apps/dashboard/pkg/apis/dashboard/{v1alpha1 => v1beta1}/zz_generated.openapi_violation_exceptions.list (62%) rename packages/grafana-schema/src/schema/dashboard/{v1alpha1 => v1beta1}/dashboard_object_gen.ts (100%) rename packages/grafana-schema/src/schema/dashboard/{v1alpha1 => v1beta1}/types.metadata.gen.ts (100%) rename packages/grafana-schema/src/schema/dashboard/{v1alpha1 => v1beta1}/types.spec.gen.ts (100%) rename packages/grafana-schema/src/schema/dashboard/{v1alpha1 => v1beta1}/types.status.gen.ts (100%) rename pkg/tests/apis/openapi_snapshots/{dashboard.grafana.app-v1alpha1.json => dashboard.grafana.app-v1beta1.json} (95%) diff --git a/Makefile b/Makefile index 1fe2dc2664a..09836ec3fa6 100644 --- a/Makefile +++ b/Makefile @@ -148,12 +148,12 @@ gen-cue: ## Do all CUE/Thema code generation @echo "generate code from .cue files" go generate ./kinds/gen.go go generate ./public/app/plugins/gen.go - @echo "// This file is managed by Grafana - DO NOT EDIT MANUALLY" > apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_kind.cue - @echo "// Source: kinds/dashboard/dashboard_kind.cue" >> apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_kind.cue - @echo "// To sync changes, run: make gen-cue" >> apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_kind.cue - @echo "" >> apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_kind.cue - @cat kinds/dashboard/dashboard_kind.cue >> apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_kind.cue - @cp apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_kind.cue apps/dashboard/pkg/apis/dashboard/v0alpha1/dashboard_kind.cue + @echo "// This file is managed by Grafana - DO NOT EDIT MANUALLY" > apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue + @echo "// Source: kinds/dashboard/dashboard_kind.cue" >> apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue + @echo "// To sync changes, run: make gen-cue" >> apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue + @echo "" >> apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue + @cat kinds/dashboard/dashboard_kind.cue >> apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue + @cp apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue apps/dashboard/pkg/apis/dashboard/v0alpha1/dashboard_kind.cue .PHONY: gen-cuev2 diff --git a/apps/dashboard/Makefile b/apps/dashboard/Makefile index 3a05e034c79..7ea4489a97c 100644 --- a/apps/dashboard/Makefile +++ b/apps/dashboard/Makefile @@ -39,8 +39,8 @@ post-generate-cleanup: ## Clean up the generated code @cp ./tshack/v0alpha1_spec_gen.ts ../../packages/grafana-schema/src/schema/dashboard/v0alpha1/types.spec.gen.ts # Same for v1alpha1 - @rm ../../packages/grafana-schema/src/schema/dashboard/v1alpha1/types.spec.gen.ts - @cp ./tshack/v1alpha1_spec_gen.ts ../../packages/grafana-schema/src/schema/dashboard/v1alpha1/types.spec.gen.ts + @rm ../../packages/grafana-schema/src/schema/dashboard/v1beta1/types.spec.gen.ts + @cp ./tshack/v1alpha1_spec_gen.ts ../../packages/grafana-schema/src/schema/dashboard/v1beta1/types.spec.gen.ts # Remove auto-generated DeepCopy and DeepCopyInto methods for Spec for v0alpha1. @sed -e '/\/\/ DeepCopy creates a full deep copy of Spec/,+5d' ./pkg/apis/dashboard/v0alpha1/dashboard_object_gen.go > ./pkg/apis/dashboard/v0alpha1/dashboard_object_gen.go.tmp @@ -49,10 +49,10 @@ post-generate-cleanup: ## Clean up the generated code @mv ./pkg/apis/dashboard/v0alpha1/dashboard_object_gen.go.tmp2 ./pkg/apis/dashboard/v0alpha1/dashboard_object_gen.go # Remove auto-generated DeepCopy and DeepCopyInto methods for Spec for v1alpha1. - @sed -e '/\/\/ DeepCopy creates a full deep copy of Spec/,+5d' ./pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go > ./pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go.tmp - @sed -e '/\/\/ DeepCopyInto deep copies Spec into another Spec object/,+3d' ./pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go.tmp > ./pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go.tmp2 - @rm ./pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go.tmp - @mv ./pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go.tmp2 ./pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go + @sed -e '/\/\/ DeepCopy creates a full deep copy of Spec/,+5d' ./pkg/apis/dashboard/v1beta1/dashboard_object_gen.go > ./pkg/apis/dashboard/v1beta1/dashboard_object_gen.go.tmp + @sed -e '/\/\/ DeepCopyInto deep copies Spec into another Spec object/,+3d' ./pkg/apis/dashboard/v1beta1/dashboard_object_gen.go.tmp > ./pkg/apis/dashboard/v1beta1/dashboard_object_gen.go.tmp2 + @rm ./pkg/apis/dashboard/v1beta1/dashboard_object_gen.go.tmp + @mv ./pkg/apis/dashboard/v1beta1/dashboard_object_gen.go.tmp2 ./pkg/apis/dashboard/v1beta1/dashboard_object_gen.go # Copy dashboard/v2alpha1 spec so we can use it for schema validation @echo "// This file is managed by grafana-app-sdk - DO NOT EDIT MANUALLY" > ./pkg/apis/dashboard/v2alpha1/dashboard_spec.cue diff --git a/apps/dashboard/kinds/dashboard.cue b/apps/dashboard/kinds/dashboard.cue index 5be84dcccf3..b8aaf17bc7c 100644 --- a/apps/dashboard/kinds/dashboard.cue +++ b/apps/dashboard/kinds/dashboard.cue @@ -2,7 +2,7 @@ package kinds import ( v0 "github.com/grafana/grafana/sdkkinds/dashboard/v0alpha1" - v1 "github.com/grafana/grafana/sdkkinds/dashboard/v1alpha1" + v1 "github.com/grafana/grafana/sdkkinds/dashboard/v1beta1" v2 "github.com/grafana/grafana/sdkkinds/dashboard/v2alpha1" ) @@ -31,7 +31,7 @@ ConversionStatus: { dashboard: { kind: "Dashboard" pluralName: "Dashboards" - current: "v0alpha1" + current: "v1beta1" codegen: { ts: { @@ -55,7 +55,7 @@ dashboard: { status: DashboardStatus } } - "v1alpha1": { + "v1beta1": { schema: { spec: v1.DashboardSpec status: DashboardStatus diff --git a/apps/dashboard/kinds/v1alpha1/dashboard_spec.cue b/apps/dashboard/kinds/v1beta1/dashboard_spec.cue similarity index 90% rename from apps/dashboard/kinds/v1alpha1/dashboard_spec.cue rename to apps/dashboard/kinds/v1beta1/dashboard_spec.cue index 709fb40fd02..61571a00a64 100644 --- a/apps/dashboard/kinds/v1alpha1/dashboard_spec.cue +++ b/apps/dashboard/kinds/v1beta1/dashboard_spec.cue @@ -1,4 +1,4 @@ -package v1alpha1 +package v1beta1 // TODO: this outputs nothing. // For now, we use unstructured for the spec, diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.conversion.go b/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.conversion.go deleted file mode 100644 index 85780124520..00000000000 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.conversion.go +++ /dev/null @@ -1,175 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -// SPDX-License-Identifier: AGPL-3.0-only - -// Code generated by conversion-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - url "net/url" - unsafe "unsafe" - - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*AnnotationActions)(nil), (*dashboard.AnnotationActions)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_AnnotationActions_To_dashboard_AnnotationActions(a.(*AnnotationActions), b.(*dashboard.AnnotationActions), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*dashboard.AnnotationActions)(nil), (*AnnotationActions)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_dashboard_AnnotationActions_To_v1alpha1_AnnotationActions(a.(*dashboard.AnnotationActions), b.(*AnnotationActions), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*AnnotationPermission)(nil), (*dashboard.AnnotationPermission)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_AnnotationPermission_To_dashboard_AnnotationPermission(a.(*AnnotationPermission), b.(*dashboard.AnnotationPermission), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*dashboard.AnnotationPermission)(nil), (*AnnotationPermission)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_dashboard_AnnotationPermission_To_v1alpha1_AnnotationPermission(a.(*dashboard.AnnotationPermission), b.(*AnnotationPermission), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*DashboardAccess)(nil), (*dashboard.DashboardAccess)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_DashboardAccess_To_dashboard_DashboardAccess(a.(*DashboardAccess), b.(*dashboard.DashboardAccess), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*dashboard.DashboardAccess)(nil), (*DashboardAccess)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_dashboard_DashboardAccess_To_v1alpha1_DashboardAccess(a.(*dashboard.DashboardAccess), b.(*DashboardAccess), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*VersionsQueryOptions)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_url_Values_To_v1alpha1_VersionsQueryOptions(a.(*url.Values), b.(*VersionsQueryOptions), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha1_AnnotationActions_To_dashboard_AnnotationActions(in *AnnotationActions, out *dashboard.AnnotationActions, s conversion.Scope) error { - out.CanAdd = in.CanAdd - out.CanEdit = in.CanEdit - out.CanDelete = in.CanDelete - return nil -} - -// Convert_v1alpha1_AnnotationActions_To_dashboard_AnnotationActions is an autogenerated conversion function. -func Convert_v1alpha1_AnnotationActions_To_dashboard_AnnotationActions(in *AnnotationActions, out *dashboard.AnnotationActions, s conversion.Scope) error { - return autoConvert_v1alpha1_AnnotationActions_To_dashboard_AnnotationActions(in, out, s) -} - -func autoConvert_dashboard_AnnotationActions_To_v1alpha1_AnnotationActions(in *dashboard.AnnotationActions, out *AnnotationActions, s conversion.Scope) error { - out.CanAdd = in.CanAdd - out.CanEdit = in.CanEdit - out.CanDelete = in.CanDelete - return nil -} - -// Convert_dashboard_AnnotationActions_To_v1alpha1_AnnotationActions is an autogenerated conversion function. -func Convert_dashboard_AnnotationActions_To_v1alpha1_AnnotationActions(in *dashboard.AnnotationActions, out *AnnotationActions, s conversion.Scope) error { - return autoConvert_dashboard_AnnotationActions_To_v1alpha1_AnnotationActions(in, out, s) -} - -func autoConvert_v1alpha1_AnnotationPermission_To_dashboard_AnnotationPermission(in *AnnotationPermission, out *dashboard.AnnotationPermission, s conversion.Scope) error { - if err := Convert_v1alpha1_AnnotationActions_To_dashboard_AnnotationActions(&in.Dashboard, &out.Dashboard, s); err != nil { - return err - } - if err := Convert_v1alpha1_AnnotationActions_To_dashboard_AnnotationActions(&in.Organization, &out.Organization, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha1_AnnotationPermission_To_dashboard_AnnotationPermission is an autogenerated conversion function. -func Convert_v1alpha1_AnnotationPermission_To_dashboard_AnnotationPermission(in *AnnotationPermission, out *dashboard.AnnotationPermission, s conversion.Scope) error { - return autoConvert_v1alpha1_AnnotationPermission_To_dashboard_AnnotationPermission(in, out, s) -} - -func autoConvert_dashboard_AnnotationPermission_To_v1alpha1_AnnotationPermission(in *dashboard.AnnotationPermission, out *AnnotationPermission, s conversion.Scope) error { - if err := Convert_dashboard_AnnotationActions_To_v1alpha1_AnnotationActions(&in.Dashboard, &out.Dashboard, s); err != nil { - return err - } - if err := Convert_dashboard_AnnotationActions_To_v1alpha1_AnnotationActions(&in.Organization, &out.Organization, s); err != nil { - return err - } - return nil -} - -// Convert_dashboard_AnnotationPermission_To_v1alpha1_AnnotationPermission is an autogenerated conversion function. -func Convert_dashboard_AnnotationPermission_To_v1alpha1_AnnotationPermission(in *dashboard.AnnotationPermission, out *AnnotationPermission, s conversion.Scope) error { - return autoConvert_dashboard_AnnotationPermission_To_v1alpha1_AnnotationPermission(in, out, s) -} - -func autoConvert_v1alpha1_DashboardAccess_To_dashboard_DashboardAccess(in *DashboardAccess, out *dashboard.DashboardAccess, s conversion.Scope) error { - out.Slug = in.Slug - out.Url = in.Url - out.CanSave = in.CanSave - out.CanEdit = in.CanEdit - out.CanAdmin = in.CanAdmin - out.CanStar = in.CanStar - out.CanDelete = in.CanDelete - out.AnnotationsPermissions = (*dashboard.AnnotationPermission)(unsafe.Pointer(in.AnnotationsPermissions)) - return nil -} - -// Convert_v1alpha1_DashboardAccess_To_dashboard_DashboardAccess is an autogenerated conversion function. -func Convert_v1alpha1_DashboardAccess_To_dashboard_DashboardAccess(in *DashboardAccess, out *dashboard.DashboardAccess, s conversion.Scope) error { - return autoConvert_v1alpha1_DashboardAccess_To_dashboard_DashboardAccess(in, out, s) -} - -func autoConvert_dashboard_DashboardAccess_To_v1alpha1_DashboardAccess(in *dashboard.DashboardAccess, out *DashboardAccess, s conversion.Scope) error { - out.Slug = in.Slug - out.Url = in.Url - out.CanSave = in.CanSave - out.CanEdit = in.CanEdit - out.CanAdmin = in.CanAdmin - out.CanStar = in.CanStar - out.CanDelete = in.CanDelete - out.AnnotationsPermissions = (*AnnotationPermission)(unsafe.Pointer(in.AnnotationsPermissions)) - return nil -} - -// Convert_dashboard_DashboardAccess_To_v1alpha1_DashboardAccess is an autogenerated conversion function. -func Convert_dashboard_DashboardAccess_To_v1alpha1_DashboardAccess(in *dashboard.DashboardAccess, out *DashboardAccess, s conversion.Scope) error { - return autoConvert_dashboard_DashboardAccess_To_v1alpha1_DashboardAccess(in, out, s) -} - -func autoConvert_url_Values_To_v1alpha1_VersionsQueryOptions(in *url.Values, out *VersionsQueryOptions, s conversion.Scope) error { - // WARNING: Field TypeMeta does not have json tag, skipping. - - if values, ok := map[string][]string(*in)["path"]; ok && len(values) > 0 { - if err := runtime.Convert_Slice_string_To_string(&values, &out.Path, s); err != nil { - return err - } - } else { - out.Path = "" - } - if values, ok := map[string][]string(*in)["version"]; ok && len(values) > 0 { - if err := runtime.Convert_Slice_string_To_int64(&values, &out.Version, s); err != nil { - return err - } - } else { - out.Version = 0 - } - return nil -} - -// Convert_url_Values_To_v1alpha1_VersionsQueryOptions is an autogenerated conversion function. -func Convert_url_Values_To_v1alpha1_VersionsQueryOptions(in *url.Values, out *VersionsQueryOptions, s conversion.Scope) error { - return autoConvert_url_Values_To_v1alpha1_VersionsQueryOptions(in, out, s) -} diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/constants.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/constants.go similarity index 91% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/constants.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/constants.go index b3732986f0b..d47d860d95f 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/constants.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/constants.go @@ -1,4 +1,4 @@ -package v1alpha1 +package v1beta1 import "k8s.io/apimachinery/pkg/runtime/schema" @@ -6,7 +6,7 @@ const ( // Group is the API group used by all kinds in this package Group = "dashboard.grafana.app" // Version is the API version used by all kinds in this package - Version = "v1alpha1" + Version = "v1beta1" ) var ( diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_codec_gen.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_codec_gen.go similarity index 97% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_codec_gen.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_codec_gen.go index 24ee7ecd7bd..c5df405aed8 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_codec_gen.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_codec_gen.go @@ -2,7 +2,7 @@ // Code generated by grafana-app-sdk. DO NOT EDIT. // -package v1alpha1 +package v1beta1 import ( "encoding/json" diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_kind.cue b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue similarity index 100% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_kind.cue rename to apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_metadata_gen.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_metadata_gen.go similarity index 98% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_metadata_gen.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_metadata_gen.go index 16ead71d265..dfad3b5cfe7 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_metadata_gen.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_metadata_gen.go @@ -1,6 +1,6 @@ // Code generated - EDITING IS FUTILE. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( time "time" diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_object_gen.go similarity index 99% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_object_gen.go index 80af0b99526..be021b5f003 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_object_gen.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_object_gen.go @@ -2,7 +2,7 @@ // Code generated by grafana-app-sdk. DO NOT EDIT. // -package v1alpha1 +package v1beta1 import ( "fmt" diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_schema_gen.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_schema_gen.go similarity index 89% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_schema_gen.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_schema_gen.go index 1c09a83e2bd..e944e0afc33 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_schema_gen.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_schema_gen.go @@ -2,7 +2,7 @@ // Code generated by grafana-app-sdk. DO NOT EDIT. // -package v1alpha1 +package v1beta1 import ( "github.com/grafana/grafana-app-sdk/resource" @@ -10,7 +10,7 @@ import ( // schema is unexported to prevent accidental overwrites var ( - schemaDashboard = resource.NewSimpleSchema("dashboard.grafana.app", "v1alpha1", &Dashboard{}, &DashboardList{}, resource.WithKind("Dashboard"), + schemaDashboard = resource.NewSimpleSchema("dashboard.grafana.app", "v1beta1", &Dashboard{}, &DashboardList{}, resource.WithKind("Dashboard"), resource.WithPlural("dashboards"), resource.WithScope(resource.NamespacedScope)) kindDashboard = resource.Kind{ Schema: schemaDashboard, diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_spec.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_spec.go similarity index 93% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_spec.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_spec.go index 0b341e6e55e..154208f46a7 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_spec.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_spec.go @@ -1,4 +1,4 @@ -package v1alpha1 +package v1beta1 import common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_spec_gen.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_spec_gen.go similarity index 75% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_spec_gen.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_spec_gen.go index 4f48fee9aae..1d1cd1f7d24 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_spec_gen.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_spec_gen.go @@ -1,3 +1,3 @@ // Code generated - EDITING IS FUTILE. DO NOT EDIT. -package v1alpha1 +package v1beta1 diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_status_gen.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_status_gen.go similarity index 98% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_status_gen.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_status_gen.go index 556d5ddba53..5213df7919b 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/dashboard_status_gen.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_status_gen.go @@ -1,6 +1,6 @@ // Code generated - EDITING IS FUTILE. DO NOT EDIT. -package v1alpha1 +package v1beta1 // ConversionStatus is the status of the conversion of the dashboard. // +k8s:openapi-gen=true diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/doc.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/doc.go similarity index 80% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/doc.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/doc.go index 66bf673964c..4ffc3214e97 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/doc.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/doc.go @@ -7,4 +7,4 @@ // because grafana-app-sdk already provides deepcopy functions. // Kinds which are not generated by the SDK are explicitly opted in to deepcopy generation. -package v1alpha1 // import "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" +package v1beta1 // import "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/register.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/register.go similarity index 98% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/register.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/register.go index 4be26c5e54c..2147d30f876 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/register.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/register.go @@ -1,4 +1,4 @@ -package v1alpha1 +package v1beta1 import ( "fmt" @@ -13,7 +13,7 @@ import ( const ( GROUP = "dashboard.grafana.app" - VERSION = "v1alpha1" + VERSION = "v1beta1" APIVERSION = GROUP + "/" + VERSION // Resource constants diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/types.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/types.go similarity index 99% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/types.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/types.go index 43844655505..a3f93c3a29c 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/types.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/types.go @@ -1,4 +1,4 @@ -package v1alpha1 +package v1beta1 import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/validation.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/validation.go similarity index 99% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/validation.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/validation.go index 37117b10108..7020aa46b90 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/validation.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/validation.go @@ -1,4 +1,4 @@ -package v1alpha1 +package v1beta1 import ( _ "embed" @@ -13,6 +13,7 @@ import ( "cuelang.org/go/cue/cuecontext" "cuelang.org/go/cue/errors" cuejson "cuelang.org/go/encoding/json" + "github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion" ) diff --git a/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.conversion.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.conversion.go new file mode 100644 index 00000000000..e3f1f46785b --- /dev/null +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.conversion.go @@ -0,0 +1,175 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +// SPDX-License-Identifier: AGPL-3.0-only + +// Code generated by conversion-gen. DO NOT EDIT. + +package v1beta1 + +import ( + url "net/url" + unsafe "unsafe" + + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*AnnotationActions)(nil), (*dashboard.AnnotationActions)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_AnnotationActions_To_dashboard_AnnotationActions(a.(*AnnotationActions), b.(*dashboard.AnnotationActions), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*dashboard.AnnotationActions)(nil), (*AnnotationActions)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_dashboard_AnnotationActions_To_v1beta1_AnnotationActions(a.(*dashboard.AnnotationActions), b.(*AnnotationActions), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*AnnotationPermission)(nil), (*dashboard.AnnotationPermission)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_AnnotationPermission_To_dashboard_AnnotationPermission(a.(*AnnotationPermission), b.(*dashboard.AnnotationPermission), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*dashboard.AnnotationPermission)(nil), (*AnnotationPermission)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_dashboard_AnnotationPermission_To_v1beta1_AnnotationPermission(a.(*dashboard.AnnotationPermission), b.(*AnnotationPermission), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*DashboardAccess)(nil), (*dashboard.DashboardAccess)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_DashboardAccess_To_dashboard_DashboardAccess(a.(*DashboardAccess), b.(*dashboard.DashboardAccess), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*dashboard.DashboardAccess)(nil), (*DashboardAccess)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_dashboard_DashboardAccess_To_v1beta1_DashboardAccess(a.(*dashboard.DashboardAccess), b.(*DashboardAccess), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*VersionsQueryOptions)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_url_Values_To_v1beta1_VersionsQueryOptions(a.(*url.Values), b.(*VersionsQueryOptions), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1beta1_AnnotationActions_To_dashboard_AnnotationActions(in *AnnotationActions, out *dashboard.AnnotationActions, s conversion.Scope) error { + out.CanAdd = in.CanAdd + out.CanEdit = in.CanEdit + out.CanDelete = in.CanDelete + return nil +} + +// Convert_v1beta1_AnnotationActions_To_dashboard_AnnotationActions is an autogenerated conversion function. +func Convert_v1beta1_AnnotationActions_To_dashboard_AnnotationActions(in *AnnotationActions, out *dashboard.AnnotationActions, s conversion.Scope) error { + return autoConvert_v1beta1_AnnotationActions_To_dashboard_AnnotationActions(in, out, s) +} + +func autoConvert_dashboard_AnnotationActions_To_v1beta1_AnnotationActions(in *dashboard.AnnotationActions, out *AnnotationActions, s conversion.Scope) error { + out.CanAdd = in.CanAdd + out.CanEdit = in.CanEdit + out.CanDelete = in.CanDelete + return nil +} + +// Convert_dashboard_AnnotationActions_To_v1beta1_AnnotationActions is an autogenerated conversion function. +func Convert_dashboard_AnnotationActions_To_v1beta1_AnnotationActions(in *dashboard.AnnotationActions, out *AnnotationActions, s conversion.Scope) error { + return autoConvert_dashboard_AnnotationActions_To_v1beta1_AnnotationActions(in, out, s) +} + +func autoConvert_v1beta1_AnnotationPermission_To_dashboard_AnnotationPermission(in *AnnotationPermission, out *dashboard.AnnotationPermission, s conversion.Scope) error { + if err := Convert_v1beta1_AnnotationActions_To_dashboard_AnnotationActions(&in.Dashboard, &out.Dashboard, s); err != nil { + return err + } + if err := Convert_v1beta1_AnnotationActions_To_dashboard_AnnotationActions(&in.Organization, &out.Organization, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_AnnotationPermission_To_dashboard_AnnotationPermission is an autogenerated conversion function. +func Convert_v1beta1_AnnotationPermission_To_dashboard_AnnotationPermission(in *AnnotationPermission, out *dashboard.AnnotationPermission, s conversion.Scope) error { + return autoConvert_v1beta1_AnnotationPermission_To_dashboard_AnnotationPermission(in, out, s) +} + +func autoConvert_dashboard_AnnotationPermission_To_v1beta1_AnnotationPermission(in *dashboard.AnnotationPermission, out *AnnotationPermission, s conversion.Scope) error { + if err := Convert_dashboard_AnnotationActions_To_v1beta1_AnnotationActions(&in.Dashboard, &out.Dashboard, s); err != nil { + return err + } + if err := Convert_dashboard_AnnotationActions_To_v1beta1_AnnotationActions(&in.Organization, &out.Organization, s); err != nil { + return err + } + return nil +} + +// Convert_dashboard_AnnotationPermission_To_v1beta1_AnnotationPermission is an autogenerated conversion function. +func Convert_dashboard_AnnotationPermission_To_v1beta1_AnnotationPermission(in *dashboard.AnnotationPermission, out *AnnotationPermission, s conversion.Scope) error { + return autoConvert_dashboard_AnnotationPermission_To_v1beta1_AnnotationPermission(in, out, s) +} + +func autoConvert_v1beta1_DashboardAccess_To_dashboard_DashboardAccess(in *DashboardAccess, out *dashboard.DashboardAccess, s conversion.Scope) error { + out.Slug = in.Slug + out.Url = in.Url + out.CanSave = in.CanSave + out.CanEdit = in.CanEdit + out.CanAdmin = in.CanAdmin + out.CanStar = in.CanStar + out.CanDelete = in.CanDelete + out.AnnotationsPermissions = (*dashboard.AnnotationPermission)(unsafe.Pointer(in.AnnotationsPermissions)) + return nil +} + +// Convert_v1beta1_DashboardAccess_To_dashboard_DashboardAccess is an autogenerated conversion function. +func Convert_v1beta1_DashboardAccess_To_dashboard_DashboardAccess(in *DashboardAccess, out *dashboard.DashboardAccess, s conversion.Scope) error { + return autoConvert_v1beta1_DashboardAccess_To_dashboard_DashboardAccess(in, out, s) +} + +func autoConvert_dashboard_DashboardAccess_To_v1beta1_DashboardAccess(in *dashboard.DashboardAccess, out *DashboardAccess, s conversion.Scope) error { + out.Slug = in.Slug + out.Url = in.Url + out.CanSave = in.CanSave + out.CanEdit = in.CanEdit + out.CanAdmin = in.CanAdmin + out.CanStar = in.CanStar + out.CanDelete = in.CanDelete + out.AnnotationsPermissions = (*AnnotationPermission)(unsafe.Pointer(in.AnnotationsPermissions)) + return nil +} + +// Convert_dashboard_DashboardAccess_To_v1beta1_DashboardAccess is an autogenerated conversion function. +func Convert_dashboard_DashboardAccess_To_v1beta1_DashboardAccess(in *dashboard.DashboardAccess, out *DashboardAccess, s conversion.Scope) error { + return autoConvert_dashboard_DashboardAccess_To_v1beta1_DashboardAccess(in, out, s) +} + +func autoConvert_url_Values_To_v1beta1_VersionsQueryOptions(in *url.Values, out *VersionsQueryOptions, s conversion.Scope) error { + // WARNING: Field TypeMeta does not have json tag, skipping. + + if values, ok := map[string][]string(*in)["path"]; ok && len(values) > 0 { + if err := runtime.Convert_Slice_string_To_string(&values, &out.Path, s); err != nil { + return err + } + } else { + out.Path = "" + } + if values, ok := map[string][]string(*in)["version"]; ok && len(values) > 0 { + if err := runtime.Convert_Slice_string_To_int64(&values, &out.Version, s); err != nil { + return err + } + } else { + out.Version = 0 + } + return nil +} + +// Convert_url_Values_To_v1beta1_VersionsQueryOptions is an autogenerated conversion function. +func Convert_url_Values_To_v1beta1_VersionsQueryOptions(in *url.Values, out *VersionsQueryOptions, s conversion.Scope) error { + return autoConvert_url_Values_To_v1beta1_VersionsQueryOptions(in, out, s) +} diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.deepcopy.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.deepcopy.go similarity index 99% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.deepcopy.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.deepcopy.go index 8e38161cc58..d60a6d25f98 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.deepcopy.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.deepcopy.go @@ -5,7 +5,7 @@ // Code generated by deepcopy-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( v0alpha1 "github.com/grafana/grafana-plugin-sdk-go/experimental/apis/data/v0alpha1" diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.defaults.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.defaults.go similarity index 96% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.defaults.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.defaults.go index 0f877b0ee12..49d2a788aab 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.defaults.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.defaults.go @@ -5,7 +5,7 @@ // Code generated by defaulter-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( runtime "k8s.io/apimachinery/pkg/runtime" diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.openapi.go b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.openapi.go similarity index 84% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.openapi.go rename to apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.openapi.go index 9e3bb475d68..3b2175bd003 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.openapi.go +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.openapi.go @@ -5,7 +5,7 @@ // Code generated by openapi-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( v0alpha1 "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" @@ -15,28 +15,28 @@ import ( func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.AnnotationActions": schema_pkg_apis_dashboard_v1alpha1_AnnotationActions(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.AnnotationPermission": schema_pkg_apis_dashboard_v1alpha1_AnnotationPermission(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.Dashboard": schema_pkg_apis_dashboard_v1alpha1_Dashboard(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardAccess": schema_pkg_apis_dashboard_v1alpha1_DashboardAccess(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardConversionStatus": schema_pkg_apis_dashboard_v1alpha1_DashboardConversionStatus(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardJSONCodec": schema_pkg_apis_dashboard_v1alpha1_DashboardJSONCodec(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardList": schema_pkg_apis_dashboard_v1alpha1_DashboardList(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardMetadata": schema_pkg_apis_dashboard_v1alpha1_DashboardMetadata(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardStatus": schema_pkg_apis_dashboard_v1alpha1_DashboardStatus(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardVersionInfo": schema_pkg_apis_dashboard_v1alpha1_DashboardVersionInfo(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardVersionList": schema_pkg_apis_dashboard_v1alpha1_DashboardVersionList(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardWithAccessInfo": schema_pkg_apis_dashboard_v1alpha1_DashboardWithAccessInfo(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanel": schema_pkg_apis_dashboard_v1alpha1_LibraryPanel(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanelList": schema_pkg_apis_dashboard_v1alpha1_LibraryPanelList(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanelSpec": schema_pkg_apis_dashboard_v1alpha1_LibraryPanelSpec(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanelStatus": schema_pkg_apis_dashboard_v1alpha1_LibraryPanelStatus(ref), - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.VersionsQueryOptions": schema_pkg_apis_dashboard_v1alpha1_VersionsQueryOptions(ref), - "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1.Unstructured": v0alpha1.Unstructured{}.OpenAPIDefinition(), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.AnnotationActions": schema_pkg_apis_dashboard_v1beta1_AnnotationActions(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.AnnotationPermission": schema_pkg_apis_dashboard_v1beta1_AnnotationPermission(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.Dashboard": schema_pkg_apis_dashboard_v1beta1_Dashboard(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardAccess": schema_pkg_apis_dashboard_v1beta1_DashboardAccess(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardConversionStatus": schema_pkg_apis_dashboard_v1beta1_DashboardConversionStatus(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardJSONCodec": schema_pkg_apis_dashboard_v1beta1_DashboardJSONCodec(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardList": schema_pkg_apis_dashboard_v1beta1_DashboardList(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardMetadata": schema_pkg_apis_dashboard_v1beta1_DashboardMetadata(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardStatus": schema_pkg_apis_dashboard_v1beta1_DashboardStatus(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardVersionInfo": schema_pkg_apis_dashboard_v1beta1_DashboardVersionInfo(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardVersionList": schema_pkg_apis_dashboard_v1beta1_DashboardVersionList(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardWithAccessInfo": schema_pkg_apis_dashboard_v1beta1_DashboardWithAccessInfo(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanel": schema_pkg_apis_dashboard_v1beta1_LibraryPanel(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanelList": schema_pkg_apis_dashboard_v1beta1_LibraryPanelList(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanelSpec": schema_pkg_apis_dashboard_v1beta1_LibraryPanelSpec(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanelStatus": schema_pkg_apis_dashboard_v1beta1_LibraryPanelStatus(ref), + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.VersionsQueryOptions": schema_pkg_apis_dashboard_v1beta1_VersionsQueryOptions(ref), + "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1.Unstructured": v0alpha1.Unstructured{}.OpenAPIDefinition(), } } -func schema_pkg_apis_dashboard_v1alpha1_AnnotationActions(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_AnnotationActions(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -70,7 +70,7 @@ func schema_pkg_apis_dashboard_v1alpha1_AnnotationActions(ref common.ReferenceCa } } -func schema_pkg_apis_dashboard_v1alpha1_AnnotationPermission(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_AnnotationPermission(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -79,13 +79,13 @@ func schema_pkg_apis_dashboard_v1alpha1_AnnotationPermission(ref common.Referenc "dashboard": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.AnnotationActions"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.AnnotationActions"), }, }, "organization": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.AnnotationActions"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.AnnotationActions"), }, }, }, @@ -93,11 +93,11 @@ func schema_pkg_apis_dashboard_v1alpha1_AnnotationPermission(ref common.Referenc }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.AnnotationActions"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.AnnotationActions"}, } } -func schema_pkg_apis_dashboard_v1alpha1_Dashboard(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_Dashboard(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -132,7 +132,7 @@ func schema_pkg_apis_dashboard_v1alpha1_Dashboard(ref common.ReferenceCallback) "status": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardStatus"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardStatus"), }, }, }, @@ -140,11 +140,11 @@ func schema_pkg_apis_dashboard_v1alpha1_Dashboard(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardStatus", "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1.Unstructured", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardStatus", "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1.Unstructured", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardAccess(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardAccess(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -202,7 +202,7 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardAccess(ref common.ReferenceCall }, "annotationsPermissions": { SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.AnnotationPermission"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.AnnotationPermission"), }, }, }, @@ -210,11 +210,11 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardAccess(ref common.ReferenceCall }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.AnnotationPermission"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.AnnotationPermission"}, } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardConversionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardConversionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -252,7 +252,7 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardConversionStatus(ref common.Ref } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardJSONCodec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardJSONCodec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -263,7 +263,7 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardJSONCodec(ref common.ReferenceC } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -296,7 +296,7 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardList(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.Dashboard"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.Dashboard"), }, }, }, @@ -307,11 +307,11 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardList(ref common.ReferenceCallba }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.Dashboard", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.Dashboard", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -407,7 +407,7 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardMetadata(ref common.ReferenceCa } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -416,18 +416,18 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardStatus(ref common.ReferenceCall "conversion": { SchemaProps: spec.SchemaProps{ Description: "Optional conversion status.", - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardConversionStatus"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardConversionStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardConversionStatus"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardConversionStatus"}, } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardVersionInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardVersionInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -477,7 +477,7 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardVersionInfo(ref common.Referenc } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardVersionList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardVersionList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -510,7 +510,7 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardVersionList(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardVersionInfo"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardVersionInfo"), }, }, }, @@ -520,11 +520,11 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardVersionList(ref common.Referenc }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardVersionInfo", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardVersionInfo", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_pkg_apis_dashboard_v1alpha1_DashboardWithAccessInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_DashboardWithAccessInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -560,13 +560,13 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardWithAccessInfo(ref common.Refer "status": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardStatus"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardStatus"), }, }, "access": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardAccess"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardAccess"), }, }, }, @@ -574,11 +574,11 @@ func schema_pkg_apis_dashboard_v1alpha1_DashboardWithAccessInfo(ref common.Refer }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardAccess", "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.DashboardStatus", "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1.Unstructured", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardAccess", "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.DashboardStatus", "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1.Unstructured", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_pkg_apis_dashboard_v1alpha1_LibraryPanel(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_LibraryPanel(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -609,13 +609,13 @@ func schema_pkg_apis_dashboard_v1alpha1_LibraryPanel(ref common.ReferenceCallbac SchemaProps: spec.SchemaProps{ Description: "Panel properties", Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanelSpec"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanelSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "Status will show errors", - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanelStatus"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanelStatus"), }, }, }, @@ -623,11 +623,11 @@ func schema_pkg_apis_dashboard_v1alpha1_LibraryPanel(ref common.ReferenceCallbac }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanelSpec", "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanelStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanelSpec", "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanelStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_pkg_apis_dashboard_v1alpha1_LibraryPanelList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_LibraryPanelList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -660,7 +660,7 @@ func schema_pkg_apis_dashboard_v1alpha1_LibraryPanelList(ref common.ReferenceCal Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanel"), + Ref: ref("github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanel"), }, }, }, @@ -670,11 +670,11 @@ func schema_pkg_apis_dashboard_v1alpha1_LibraryPanelList(ref common.ReferenceCal }, }, Dependencies: []string{ - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1.LibraryPanel", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1.LibraryPanel", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_pkg_apis_dashboard_v1alpha1_LibraryPanelSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_LibraryPanelSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -754,7 +754,7 @@ func schema_pkg_apis_dashboard_v1alpha1_LibraryPanelSpec(ref common.ReferenceCal } } -func schema_pkg_apis_dashboard_v1alpha1_LibraryPanelStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_LibraryPanelStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ @@ -789,7 +789,7 @@ func schema_pkg_apis_dashboard_v1alpha1_LibraryPanelStatus(ref common.ReferenceC } } -func schema_pkg_apis_dashboard_v1alpha1_VersionsQueryOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_pkg_apis_dashboard_v1beta1_VersionsQueryOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ diff --git a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.openapi_violation_exceptions.list b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.openapi_violation_exceptions.list similarity index 62% rename from apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.openapi_violation_exceptions.list rename to apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.openapi_violation_exceptions.list index 9a9b51f93c7..a4bab110b14 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1alpha1/zz_generated.openapi_violation_exceptions.list +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/zz_generated.openapi_violation_exceptions.list @@ -1,3 +1,3 @@ -API rule violation: list_type_missing,github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1,DashboardMetadata,Finalizers -API rule violation: list_type_missing,github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1,LibraryPanelStatus,Warnings +API rule violation: list_type_missing,github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1,DashboardMetadata,Finalizers +API rule violation: list_type_missing,github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1,LibraryPanelStatus,Warnings API rule violation: names_match,github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1,Unstructured,Object diff --git a/apps/dashboard/pkg/apis/dashboard_manifest.go b/apps/dashboard/pkg/apis/dashboard_manifest.go index 9980594ef44..cc5451a78e8 100644 --- a/apps/dashboard/pkg/apis/dashboard_manifest.go +++ b/apps/dashboard/pkg/apis/dashboard_manifest.go @@ -25,7 +25,7 @@ var appManifestData = app.ManifestData{ }, { - Name: "v1alpha1", + Name: "v1beta1", }, { diff --git a/apps/dashboard/pkg/migration/conversion/conversion.go b/apps/dashboard/pkg/migration/conversion/conversion.go index cb11e024f85..ff9f1c0365c 100644 --- a/apps/dashboard/pkg/migration/conversion/conversion.go +++ b/apps/dashboard/pkg/migration/conversion/conversion.go @@ -5,7 +5,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" dashv0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" dashv2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" "github.com/grafana/grafana/apps/dashboard/pkg/migration" "github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion" diff --git a/apps/dashboard/pkg/migration/conversion/conversion_test.go b/apps/dashboard/pkg/migration/conversion/conversion_test.go index 243745ce0ab..248fbe70eaa 100644 --- a/apps/dashboard/pkg/migration/conversion/conversion_test.go +++ b/apps/dashboard/pkg/migration/conversion/conversion_test.go @@ -10,7 +10,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" dashv0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" dashv2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" "github.com/grafana/grafana/pkg/apimachinery/utils" diff --git a/apps/dashboard/pkg/migration/migrate.go b/apps/dashboard/pkg/migration/migrate.go index 51d61772704..6cf4f1b4cf0 100644 --- a/apps/dashboard/pkg/migration/migrate.go +++ b/apps/dashboard/pkg/migration/migrate.go @@ -2,9 +2,9 @@ package migration import "github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion" -func Migrate(dash map[string]interface{}, targetVersion int) error { +func Migrate(dash map[string]any, targetVersion int) error { if dash == nil { - dash = map[string]interface{}{} + dash = map[string]any{} } inputVersion := schemaversion.GetSchemaVersion(dash) dash["schemaVersion"] = inputVersion diff --git a/conf/provisioning/sample/dashboard-v1.json b/conf/provisioning/sample/dashboard-v1.json index 6f5c272da70..6e7affce4a5 100644 --- a/conf/provisioning/sample/dashboard-v1.json +++ b/conf/provisioning/sample/dashboard-v1.json @@ -1,6 +1,6 @@ { "kind": "Dashboard", - "apiVersion": "dashboard.grafana.app/v1alpha1", + "apiVersion": "dashboard.grafana.app/v1beta1", "metadata": { "name": "sample-dash", "annotations": { diff --git a/conf/provisioning/sample/folder-A/folder-B/dashboard-nested.json b/conf/provisioning/sample/folder-A/folder-B/dashboard-nested.json index 62b4ae7e583..1d0862469f6 100644 --- a/conf/provisioning/sample/folder-A/folder-B/dashboard-nested.json +++ b/conf/provisioning/sample/folder-A/folder-B/dashboard-nested.json @@ -1,6 +1,6 @@ { "kind": "Dashboard", - "apiVersion": "dashboard.grafana.app/v1alpha1", + "apiVersion": "dashboard.grafana.app/v1beta1", "metadata": { "name": "dashboard-nested", "annotations": { diff --git a/packages/grafana-schema/src/schema/dashboard/v1alpha1/dashboard_object_gen.ts b/packages/grafana-schema/src/schema/dashboard/v1beta1/dashboard_object_gen.ts similarity index 100% rename from packages/grafana-schema/src/schema/dashboard/v1alpha1/dashboard_object_gen.ts rename to packages/grafana-schema/src/schema/dashboard/v1beta1/dashboard_object_gen.ts diff --git a/packages/grafana-schema/src/schema/dashboard/v1alpha1/types.metadata.gen.ts b/packages/grafana-schema/src/schema/dashboard/v1beta1/types.metadata.gen.ts similarity index 100% rename from packages/grafana-schema/src/schema/dashboard/v1alpha1/types.metadata.gen.ts rename to packages/grafana-schema/src/schema/dashboard/v1beta1/types.metadata.gen.ts diff --git a/packages/grafana-schema/src/schema/dashboard/v1alpha1/types.spec.gen.ts b/packages/grafana-schema/src/schema/dashboard/v1beta1/types.spec.gen.ts similarity index 100% rename from packages/grafana-schema/src/schema/dashboard/v1alpha1/types.spec.gen.ts rename to packages/grafana-schema/src/schema/dashboard/v1beta1/types.spec.gen.ts diff --git a/packages/grafana-schema/src/schema/dashboard/v1alpha1/types.status.gen.ts b/packages/grafana-schema/src/schema/dashboard/v1beta1/types.status.gen.ts similarity index 100% rename from packages/grafana-schema/src/schema/dashboard/v1alpha1/types.status.gen.ts rename to packages/grafana-schema/src/schema/dashboard/v1beta1/types.status.gen.ts diff --git a/pkg/api/dashboard.go b/pkg/api/dashboard.go index f4658d22305..b6a921d07c1 100644 --- a/pkg/api/dashboard.go +++ b/pkg/api/dashboard.go @@ -12,8 +12,10 @@ import ( "strconv" "strings" + k8serrors "k8s.io/apimachinery/pkg/api/errors" + claims "github.com/grafana/authlib/types" - dashboardsV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardsV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/api/apierrors" "github.com/grafana/grafana/pkg/api/dtos" "github.com/grafana/grafana/pkg/api/response" @@ -36,7 +38,6 @@ import ( "github.com/grafana/grafana/pkg/services/user" "github.com/grafana/grafana/pkg/util" "github.com/grafana/grafana/pkg/web" - k8serrors "k8s.io/apimachinery/pkg/api/errors" ) const ( diff --git a/pkg/api/dtos/dashboard.go b/pkg/api/dtos/dashboard.go index ee0f67b798f..5d255537377 100644 --- a/pkg/api/dtos/dashboard.go +++ b/pkg/api/dtos/dashboard.go @@ -3,7 +3,7 @@ package dtos import ( "time" - dashboardsV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardsV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/components/simplejson" ) diff --git a/pkg/cmd/grafana-cli/commands/datamigrations/to_unified_storage.go b/pkg/cmd/grafana-cli/commands/datamigrations/to_unified_storage.go index ae54e9d12e1..293ec5d16fc 100644 --- a/pkg/cmd/grafana-cli/commands/datamigrations/to_unified_storage.go +++ b/pkg/cmd/grafana-cli/commands/datamigrations/to_unified_storage.go @@ -12,7 +12,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" authlib "github.com/grafana/authlib/types" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/cmd/grafana-cli/utils" diff --git a/pkg/registry/apis/dashboard/large.go b/pkg/registry/apis/dashboard/large.go index db465b5a191..c9c83f0dd37 100644 --- a/pkg/registry/apis/dashboard/large.go +++ b/pkg/registry/apis/dashboard/large.go @@ -7,7 +7,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" dashboardV0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" dashboardV2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" commonV0 "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" "github.com/grafana/grafana/pkg/apimachinery/utils" diff --git a/pkg/registry/apis/dashboard/large_test.go b/pkg/registry/apis/dashboard/large_test.go index c9652bf2b59..9b86adf4011 100644 --- a/pkg/registry/apis/dashboard/large_test.go +++ b/pkg/registry/apis/dashboard/large_test.go @@ -10,7 +10,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" - dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" ) func TestLargeDashboardSupport(t *testing.T) { diff --git a/pkg/registry/apis/dashboard/legacy/migrate.go b/pkg/registry/apis/dashboard/legacy/migrate.go index de8cc5034b7..48db5f23930 100644 --- a/pkg/registry/apis/dashboard/legacy/migrate.go +++ b/pkg/registry/apis/dashboard/legacy/migrate.go @@ -11,7 +11,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" authlib "github.com/grafana/authlib/types" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/utils" "github.com/grafana/grafana/pkg/infra/db" diff --git a/pkg/registry/apis/dashboard/legacy/sql_dashboards.go b/pkg/registry/apis/dashboard/legacy/sql_dashboards.go index 71ece20868e..b0ce8cfba5e 100644 --- a/pkg/registry/apis/dashboard/legacy/sql_dashboards.go +++ b/pkg/registry/apis/dashboard/legacy/sql_dashboards.go @@ -15,8 +15,8 @@ import ( claims "github.com/grafana/authlib/types" dashboardOG "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard" - dashboardv0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardV0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion" "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" "github.com/grafana/grafana/pkg/apimachinery/identity" @@ -43,7 +43,7 @@ type dashboardRow struct { RV int64 // Dashboard resource - Dash *dashboard.Dashboard + Dash *dashboardV1.Dashboard // The folder UID (needed for access control checks) FolderUID string @@ -222,8 +222,8 @@ func (r *rowsWrapper) Value() []byte { } func (a *dashboardSqlAccess) scanRow(rows *sql.Rows, history bool) (*dashboardRow, error) { - dash := &dashboard.Dashboard{ - TypeMeta: dashboard.DashboardResourceInfo.TypeMeta(), + dash := &dashboardV1.Dashboard{ + TypeMeta: dashboardV1.DashboardResourceInfo.TypeMeta(), ObjectMeta: metav1.ObjectMeta{Annotations: make(map[string]string)}, } row := &dashboardRow{Dash: dash} @@ -257,8 +257,11 @@ func (a *dashboardSqlAccess) scanRow(rows *sql.Rows, history bool) (*dashboardRo &updated, &updatedBy, &updatedByID, &version, &message, &data, &apiVersion, ) - if apiVersion.String == "" { - apiVersion.String = "v0alpha1" // default value + switch apiVersion.String { + case "": + apiVersion.String = dashboardV0.VERSION // default value + case "v1alpha1": + apiVersion.String = dashboardV0.VERSION // downgrade to v0 (it may not have run migrations) } row.token = &continueToken{orgId: orgId, id: dashboard_id} @@ -270,7 +273,7 @@ func (a *dashboardSqlAccess) scanRow(rows *sql.Rows, history bool) (*dashboardRo row.RV = version dash.ResourceVersion = fmt.Sprintf("%d", row.RV) dash.Namespace = a.namespacer(orgId) - dash.APIVersion = fmt.Sprintf("%s/%s", dashboard.GROUP, apiVersion.String) + dash.APIVersion = fmt.Sprintf("%s/%s", dashboardV1.GROUP, apiVersion.String) dash.UID = gapiutil.CalculateClusterWideUID(dash) dash.SetCreationTimestamp(metav1.NewTime(created)) meta, err := utils.MetaAccessor(dash) @@ -345,7 +348,7 @@ func getUserID(v sql.NullString, id sql.NullInt64) string { } // DeleteDashboard implements DashboardAccess. -func (a *dashboardSqlAccess) DeleteDashboard(ctx context.Context, orgId int64, uid string) (*dashboard.Dashboard, bool, error) { +func (a *dashboardSqlAccess) DeleteDashboard(ctx context.Context, orgId int64, uid string) (*dashboardV1.Dashboard, bool, error) { dash, _, err := a.GetDashboard(ctx, orgId, uid, 0) if err != nil { return nil, false, err @@ -361,7 +364,7 @@ func (a *dashboardSqlAccess) DeleteDashboard(ctx context.Context, orgId int64, u return dash, true, nil } -func (a *dashboardSqlAccess) buildSaveDashboardCommand(ctx context.Context, orgId int64, dash *dashboard.Dashboard) (*dashboards.SaveDashboardCommand, bool, error) { +func (a *dashboardSqlAccess) buildSaveDashboardCommand(ctx context.Context, orgId int64, dash *dashboardV1.Dashboard) (*dashboards.SaveDashboardCommand, bool, error) { created := false user, ok := claims.AuthInfoFrom(ctx) if !ok || user == nil { @@ -397,21 +400,21 @@ func (a *dashboardSqlAccess) buildSaveDashboardCommand(ctx context.Context, orgI } } - // v1 should be saved as schema version 41. v0 allows for older versions - if strings.HasSuffix(dash.APIVersion, "v1alpha1") { - schemaVersion := schemaversion.GetSchemaVersion(dash.Spec.Object) - if schemaVersion < int(schemaversion.LATEST_VERSION) { - dash.APIVersion = dashboardv0.VERSION - a.log.Info("Downgrading v1alpha1 dashboard to v0alpha1 due to schema version mismatch", "dashboard", dash.Name, "schema_version", schemaVersion) - } - } - - apiVersion := strings.TrimPrefix(dash.APIVersion, dashboard.GROUP+"/") + apiVersion := strings.TrimPrefix(dash.APIVersion, dashboardV1.GROUP+"/") meta, err := utils.MetaAccessor(dash) if err != nil { return nil, created, err } + // v1 should be saved as schema version 41. v0 allows for older versions + if strings.HasPrefix(apiVersion, "v1") { + schemaVersion := schemaversion.GetSchemaVersion(dash.Spec.Object) + if schemaVersion < int(schemaversion.LATEST_VERSION) { + apiVersion = dashboardV0.VERSION + a.log.Info("Downgrading v1alpha1 dashboard to v0alpha1 due to schema version mismatch", "dashboard", dash.Name, "schema_version", schemaVersion) + } + } + return &dashboards.SaveDashboardCommand{ OrgID: orgId, Message: meta.GetMessage(), @@ -424,7 +427,7 @@ func (a *dashboardSqlAccess) buildSaveDashboardCommand(ctx context.Context, orgI }, created, nil } -func (a *dashboardSqlAccess) SaveDashboard(ctx context.Context, orgId int64, dash *dashboard.Dashboard, failOnExisting bool) (*dashboard.Dashboard, bool, error) { +func (a *dashboardSqlAccess) SaveDashboard(ctx context.Context, orgId int64, dash *dashboardV1.Dashboard, failOnExisting bool) (*dashboardV1.Dashboard, bool, error) { user, ok := claims.AuthInfoFrom(ctx) if !ok || user == nil { return nil, false, fmt.Errorf("no user found in context") @@ -464,7 +467,7 @@ func (a *dashboardSqlAccess) SaveDashboard(ctx context.Context, orgId int64, das return dash, created, err } -func (a *dashboardSqlAccess) GetLibraryPanels(ctx context.Context, query LibraryPanelQuery) (*dashboard.LibraryPanelList, error) { +func (a *dashboardSqlAccess) GetLibraryPanels(ctx context.Context, query LibraryPanelQuery) (*dashboardV0.LibraryPanelList, error) { limit := int(query.Limit) query.Limit += 1 // for continue if query.OrgID == 0 { @@ -483,7 +486,7 @@ func (a *dashboardSqlAccess) GetLibraryPanels(ctx context.Context, query Library } q := rawQuery - res := &dashboard.LibraryPanelList{} + res := &dashboardV0.LibraryPanelList{} rows, err := sqlx.DB.GetSqlxSession().Query(ctx, q, req.GetArgs()...) defer func() { if rows != nil { @@ -524,9 +527,9 @@ func (a *dashboardSqlAccess) GetLibraryPanels(ctx context.Context, query Library } lastID = p.ID - item := dashboard.LibraryPanel{ + item := dashboardV0.LibraryPanel{ TypeMeta: metav1.TypeMeta{ - APIVersion: fmt.Sprintf("%s/%s", dashboard.GROUP, "v0alpha1"), + APIVersion: dashboardV0.APIVERSION, Kind: "LibraryPanel", }, ObjectMeta: metav1.ObjectMeta{ @@ -534,10 +537,10 @@ func (a *dashboardSqlAccess) GetLibraryPanels(ctx context.Context, query Library CreationTimestamp: metav1.NewTime(p.Created), ResourceVersion: strconv.FormatInt(p.Updated.UnixMilli(), 10), }, - Spec: dashboard.LibraryPanelSpec{}, + Spec: dashboardV0.LibraryPanelSpec{}, } - status := &dashboard.LibraryPanelStatus{ + status := &dashboardV0.LibraryPanelStatus{ Missing: v0alpha1.Unstructured{}, } err = json.Unmarshal(p.Model, &item.Spec) diff --git a/pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go b/pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go index c3ee67f4fb8..6c19aa9ccf6 100644 --- a/pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go +++ b/pkg/registry/apis/dashboard/legacy/sql_dashboards_test.go @@ -10,7 +10,8 @@ import ( "github.com/stretchr/testify/require" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardV0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/apimachinery/utils" @@ -134,20 +135,20 @@ func TestBuildSaveDashboardCommand(t *testing.T) { expectedAPI string }{ { - name: "with schema version 36 should save as v0alpha1", + name: "with schema version 36 should save as v0", schemaVersion: 36, - expectedAPI: "v0alpha1", - }, - { - name: "with schema version 41 should save as v1alpha1", - schemaVersion: 41, - expectedAPI: "v1alpha1", - }, - { - name: "with empty schema version should save as v0alpha1", - schemaVersion: 0, - expectedAPI: "v0alpha1", + expectedAPI: dashboardV0.VERSION, }, + // { + // name: "with schema version 41 should save as v1", + // schemaVersion: 41, + // expectedAPI: dashboardV1.VERSION, + // }, + // { + // name: "with empty schema version should save as v0", + // schemaVersion: 0, + // expectedAPI: dashboardV0.VERSION, + // }, } for _, tc := range testCases { @@ -167,9 +168,9 @@ func TestBuildSaveDashboardCommand(t *testing.T) { dashSpec["schemaVersion"] = tc.schemaVersion } - dash := &dashboard.Dashboard{ + dash := &dashboardV1.Dashboard{ TypeMeta: metav1.TypeMeta{ - APIVersion: dashboard.APIVERSION, + APIVersion: dashboardV1.APIVERSION, }, ObjectMeta: metav1.ObjectMeta{ Name: "test-dash", @@ -205,7 +206,7 @@ func TestBuildSaveDashboardCommand(t *testing.T) { &dashboards.Dashboard{ ID: 1234, Version: 2, - APIVersion: dashboard.APIVERSION, + APIVersion: dashboardV1.VERSION, }, nil).Once() cmd, created, err = access.buildSaveDashboardCommand(ctx, 1, dash) require.NoError(t, err) diff --git a/pkg/registry/apis/dashboard/legacy/storage.go b/pkg/registry/apis/dashboard/legacy/storage.go index 19abbb75c1d..ca9dcfd633d 100644 --- a/pkg/registry/apis/dashboard/legacy/storage.go +++ b/pkg/registry/apis/dashboard/legacy/storage.go @@ -9,7 +9,7 @@ import ( claims "github.com/grafana/authlib/types" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/utils" "github.com/grafana/grafana/pkg/services/dashboards" "github.com/grafana/grafana/pkg/storage/unified/resource" diff --git a/pkg/registry/apis/dashboard/legacy/storage_test.go b/pkg/registry/apis/dashboard/legacy/storage_test.go index a4632aba459..1251d45ef2c 100644 --- a/pkg/registry/apis/dashboard/legacy/storage_test.go +++ b/pkg/registry/apis/dashboard/legacy/storage_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/require" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/apimachinery/utils" "github.com/grafana/grafana/pkg/infra/log" diff --git a/pkg/registry/apis/dashboard/legacy/types.go b/pkg/registry/apis/dashboard/legacy/types.go index 95b55aea94f..435103cac93 100644 --- a/pkg/registry/apis/dashboard/legacy/types.go +++ b/pkg/registry/apis/dashboard/legacy/types.go @@ -3,7 +3,8 @@ package legacy import ( "context" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardV0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/storage/unified/resource" ) @@ -54,10 +55,10 @@ type DashboardAccess interface { resource.ResourceIndexServer LegacyMigrator - GetDashboard(ctx context.Context, orgId int64, uid string, version int64) (*dashboard.Dashboard, int64, error) - SaveDashboard(ctx context.Context, orgId int64, dash *dashboard.Dashboard, failOnExisting bool) (*dashboard.Dashboard, bool, error) - DeleteDashboard(ctx context.Context, orgId int64, uid string) (*dashboard.Dashboard, bool, error) + GetDashboard(ctx context.Context, orgId int64, uid string, version int64) (*dashboardV1.Dashboard, int64, error) + SaveDashboard(ctx context.Context, orgId int64, dash *dashboardV1.Dashboard, failOnExisting bool) (*dashboardV1.Dashboard, bool, error) + DeleteDashboard(ctx context.Context, orgId int64, uid string) (*dashboardV1.Dashboard, bool, error) // Get a typed list - GetLibraryPanels(ctx context.Context, query LibraryPanelQuery) (*dashboard.LibraryPanelList, error) + GetLibraryPanels(ctx context.Context, query LibraryPanelQuery) (*dashboardV0.LibraryPanelList, error) } diff --git a/pkg/registry/apis/dashboard/legacysearcher/search_client.go b/pkg/registry/apis/dashboard/legacysearcher/search_client.go index 1724125f1a5..ef667736684 100644 --- a/pkg/registry/apis/dashboard/legacysearcher/search_client.go +++ b/pkg/registry/apis/dashboard/legacysearcher/search_client.go @@ -11,7 +11,7 @@ import ( "k8s.io/apimachinery/pkg/selection" claims "github.com/grafana/authlib/types" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/apimachinery/utils" diff --git a/pkg/registry/apis/dashboard/legacysearcher/search_client_test.go b/pkg/registry/apis/dashboard/legacysearcher/search_client_test.go index 2f8a00f691c..cc3cd3c6869 100644 --- a/pkg/registry/apis/dashboard/legacysearcher/search_client_test.go +++ b/pkg/registry/apis/dashboard/legacysearcher/search_client_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/require" "k8s.io/apimachinery/pkg/selection" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/apimachinery/utils" "github.com/grafana/grafana/pkg/services/dashboards" diff --git a/pkg/registry/apis/dashboard/mutate.go b/pkg/registry/apis/dashboard/mutate.go index e2d0a02d116..2470d35b417 100644 --- a/pkg/registry/apis/dashboard/mutate.go +++ b/pkg/registry/apis/dashboard/mutate.go @@ -4,17 +4,17 @@ import ( "context" "fmt" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apiserver/pkg/admission" dashboardV0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" dashboardV2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" "github.com/grafana/grafana/apps/dashboard/pkg/migration" "github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion" "github.com/grafana/grafana/pkg/apimachinery/utils" - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/validation/field" ) func (b *DashboardsAPIBuilder) Mutate(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) (err error) { diff --git a/pkg/registry/apis/dashboard/mutation_test.go b/pkg/registry/apis/dashboard/mutation_test.go index 9865fb1828d..9eb092b8031 100644 --- a/pkg/registry/apis/dashboard/mutation_test.go +++ b/pkg/registry/apis/dashboard/mutation_test.go @@ -4,18 +4,19 @@ import ( "context" "testing" - dashv0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" - "github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion" - common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" - "github.com/grafana/grafana/pkg/apimachinery/utils" - "github.com/grafana/grafana/pkg/services/featuremgmt" "github.com/stretchr/testify/require" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/admission" + + dashv0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" + dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" + "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" + "github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion" + common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" + "github.com/grafana/grafana/pkg/apimachinery/utils" + "github.com/grafana/grafana/pkg/services/featuremgmt" ) func TestDashboardAPIBuilder_Mutate(t *testing.T) { diff --git a/pkg/registry/apis/dashboard/register.go b/pkg/registry/apis/dashboard/register.go index 85a334dc405..7874457bbd2 100644 --- a/pkg/registry/apis/dashboard/register.go +++ b/pkg/registry/apis/dashboard/register.go @@ -22,7 +22,7 @@ import ( claims "github.com/grafana/authlib/types" internal "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard" dashv0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" dashv2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" "github.com/grafana/grafana/apps/dashboard/pkg/migration/conversion" "github.com/grafana/grafana/pkg/apimachinery/identity" diff --git a/pkg/registry/apis/dashboard/register_test.go b/pkg/registry/apis/dashboard/register_test.go index b149515e0ad..58ebb470cd9 100644 --- a/pkg/registry/apis/dashboard/register_test.go +++ b/pkg/registry/apis/dashboard/register_test.go @@ -5,18 +5,19 @@ import ( "fmt" "testing" - dashv0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" - dashv2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" - common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" - "github.com/grafana/grafana/pkg/services/dashboards" - "github.com/grafana/grafana/pkg/services/featuremgmt" - "github.com/grafana/grafana/pkg/services/user" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/admission" + + dashv0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" + dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" + dashv2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" + common "github.com/grafana/grafana/pkg/apimachinery/apis/common/v0alpha1" + "github.com/grafana/grafana/pkg/services/dashboards" + "github.com/grafana/grafana/pkg/services/featuremgmt" + "github.com/grafana/grafana/pkg/services/user" ) func TestDashboardAPIBuilder_Validate(t *testing.T) { diff --git a/pkg/registry/apis/dashboard/schema_validation.go b/pkg/registry/apis/dashboard/schema_validation.go index 7f09de98928..26749eaa598 100644 --- a/pkg/registry/apis/dashboard/schema_validation.go +++ b/pkg/registry/apis/dashboard/schema_validation.go @@ -5,16 +5,16 @@ import ( _ "embed" "fmt" + apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" - "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" + v0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" + v1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" + v2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" "github.com/grafana/grafana/pkg/apimachinery/utils" "github.com/grafana/grafana/pkg/services/featuremgmt" - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // ValidateDashboardSpec validates the dashboard spec and throws a detailed error if there are validation errors. @@ -28,11 +28,11 @@ func (b *DashboardsAPIBuilder) ValidateDashboardSpec(ctx context.Context, obj ru mode := fieldValidationMode if mode != metav1.FieldValidationIgnore { switch obj.(type) { - case *v0alpha1.Dashboard: + case *v0.Dashboard: errorOnSchemaMismatches = false // Never error for v0 - case *v1alpha1.Dashboard: + case *v1.Dashboard: errorOnSchemaMismatches = !b.features.IsEnabled(ctx, featuremgmt.FlagDashboardDisableSchemaValidationV1) - case *v2alpha1.Dashboard: + case *v2.Dashboard: errorOnSchemaMismatches = !b.features.IsEnabled(ctx, featuremgmt.FlagDashboardDisableSchemaValidationV2) default: return nil, fmt.Errorf("invalid dashboard type: %T", obj) @@ -48,12 +48,12 @@ func (b *DashboardsAPIBuilder) ValidateDashboardSpec(ctx context.Context, obj ru var schemaVersionError field.ErrorList if errorOnSchemaMismatches || alwaysLogSchemaValidationErrors { switch v := obj.(type) { - case *v0alpha1.Dashboard: - errors, schemaVersionError = v0alpha1.ValidateDashboardSpec(v, alwaysLogSchemaValidationErrors) - case *v1alpha1.Dashboard: - errors, schemaVersionError = v1alpha1.ValidateDashboardSpec(v, alwaysLogSchemaValidationErrors) - case *v2alpha1.Dashboard: - errors = v2alpha1.ValidateDashboardSpec(v) + case *v0.Dashboard: + errors, schemaVersionError = v0.ValidateDashboardSpec(v, alwaysLogSchemaValidationErrors) + case *v1.Dashboard: + errors, schemaVersionError = v1.ValidateDashboardSpec(v, alwaysLogSchemaValidationErrors) + case *v2.Dashboard: + errors = v2.ValidateDashboardSpec(v) } } diff --git a/pkg/registry/apis/dashboard/search.go b/pkg/registry/apis/dashboard/search.go index a5e2b50198a..ca61ca5eb27 100644 --- a/pkg/registry/apis/dashboard/search.go +++ b/pkg/registry/apis/dashboard/search.go @@ -18,9 +18,6 @@ import ( "k8s.io/kube-openapi/pkg/spec3" "k8s.io/kube-openapi/pkg/validation/spec" - "github.com/grafana/grafana/pkg/storage/legacysql/dualwrite" - "github.com/grafana/grafana/pkg/storage/unified/search" - dashboardv0alpha1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" @@ -30,7 +27,9 @@ import ( dashboardsearch "github.com/grafana/grafana/pkg/services/dashboards/service/search" "github.com/grafana/grafana/pkg/services/featuremgmt" foldermodel "github.com/grafana/grafana/pkg/services/folder" + "github.com/grafana/grafana/pkg/storage/legacysql/dualwrite" "github.com/grafana/grafana/pkg/storage/unified/resource" + "github.com/grafana/grafana/pkg/storage/unified/search" "github.com/grafana/grafana/pkg/util/errhttp" ) diff --git a/pkg/registry/apis/provisioning/jobs/pullrequest/changes.go b/pkg/registry/apis/provisioning/jobs/pullrequest/changes.go index 961485b1eb6..e6a57209d27 100644 --- a/pkg/registry/apis/provisioning/jobs/pullrequest/changes.go +++ b/pkg/registry/apis/provisioning/jobs/pullrequest/changes.go @@ -8,7 +8,7 @@ import ( "strings" "github.com/grafana/grafana-app-sdk/logging" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" provisioning "github.com/grafana/grafana/pkg/apis/provisioning/v0alpha1" "github.com/grafana/grafana/pkg/cmd/grafana-cli/logger" "github.com/grafana/grafana/pkg/infra/slugify" diff --git a/pkg/registry/apis/provisioning/resources/client.go b/pkg/registry/apis/provisioning/resources/client.go index 6f32bc87a39..fcdabcb0705 100644 --- a/pkg/registry/apis/provisioning/resources/client.go +++ b/pkg/registry/apis/provisioning/resources/client.go @@ -10,7 +10,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/dynamic" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" iam "github.com/grafana/grafana/pkg/apis/iam/v0alpha1" "github.com/grafana/grafana/pkg/services/apiserver" diff --git a/pkg/registry/apis/provisioning/resources/parser_test.go b/pkg/registry/apis/provisioning/resources/parser_test.go index bf545f90b07..d718445fc57 100644 --- a/pkg/registry/apis/provisioning/resources/parser_test.go +++ b/pkg/registry/apis/provisioning/resources/parser_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/require" dashboardV0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" provisioning "github.com/grafana/grafana/pkg/apis/provisioning/v0alpha1" "github.com/grafana/grafana/pkg/registry/apis/provisioning/repository" ) diff --git a/pkg/services/apiserver/standalone/runtime_test.go b/pkg/services/apiserver/standalone/runtime_test.go index dbee0a54e2b..08dca9505bc 100644 --- a/pkg/services/apiserver/standalone/runtime_test.go +++ b/pkg/services/apiserver/standalone/runtime_test.go @@ -4,16 +4,17 @@ import ( "fmt" "testing" - dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" "github.com/stretchr/testify/require" + + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" ) func TestReadRuntimeCOnfig(t *testing.T) { - out, err := ReadRuntimeConfig("all/all=true," + dashboardv1.APIVERSION + "=false") + out, err := ReadRuntimeConfig("all/all=true," + dashboardV1.APIVERSION + "=false") require.NoError(t, err) require.Equal(t, []RuntimeConfig{ {Group: "all", Version: "all", Enabled: true}, - {Group: "dashboard.grafana.app", Version: "v1alpha1", Enabled: false}, + {Group: dashboardV1.GROUP, Version: dashboardV1.VERSION, Enabled: false}, }, out) require.Equal(t, "all/all=true", fmt.Sprintf("%v", out[0])) diff --git a/pkg/services/authz/zanzana/common/tuple.go b/pkg/services/authz/zanzana/common/tuple.go index d0a550107fc..41ed7c2a85b 100644 --- a/pkg/services/authz/zanzana/common/tuple.go +++ b/pkg/services/authz/zanzana/common/tuple.go @@ -6,7 +6,7 @@ import ( openfgav1 "github.com/openfga/api/proto/openfga/v1" "google.golang.org/protobuf/types/known/structpb" - dashboardalpha1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/utils" authzextv1 "github.com/grafana/grafana/pkg/services/authz/proto/v1" ) @@ -377,8 +377,8 @@ func AddRenderContext(req *openfgav1.CheckRequest) { User: req.TupleKey.User, Relation: RelationSetView, Object: NewGroupResourceIdent( - dashboardalpha1.DashboardResourceInfo.GroupResource().Group, - dashboardalpha1.DashboardResourceInfo.GroupResource().Resource, + dashboardV1.DashboardResourceInfo.GroupResource().Group, + dashboardV1.DashboardResourceInfo.GroupResource().Resource, "", ), }) diff --git a/pkg/services/authz/zanzana/translations.go b/pkg/services/authz/zanzana/translations.go index f7002da9ec2..0abefcf2e29 100644 --- a/pkg/services/authz/zanzana/translations.go +++ b/pkg/services/authz/zanzana/translations.go @@ -1,7 +1,7 @@ package zanzana import ( - dashboards "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboards "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" ) diff --git a/pkg/services/dashboards/service/client/client.go b/pkg/services/dashboards/service/client/client.go index dd9d306d97d..401d4773d16 100644 --- a/pkg/services/dashboards/service/client/client.go +++ b/pkg/services/dashboards/service/client/client.go @@ -5,6 +5,7 @@ import ( "fmt" "sync" + "github.com/prometheus/client_golang/prometheus" "go.opentelemetry.io/otel/attribute" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -22,7 +23,6 @@ import ( "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/storage/legacysql/dualwrite" "github.com/grafana/grafana/pkg/storage/unified/resource" - "github.com/prometheus/client_golang/prometheus" ) type K8sClientFactory func(ctx context.Context, version string) client.K8sHandler diff --git a/pkg/services/dashboards/service/client/client_test.go b/pkg/services/dashboards/service/client/client_test.go index 767f89ad1f5..0e05ed11c72 100644 --- a/pkg/services/dashboards/service/client/client_test.go +++ b/pkg/services/dashboards/service/client/client_test.go @@ -11,7 +11,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/services/apiserver/client" ) diff --git a/pkg/services/dashboards/service/dashboard_service_test.go b/pkg/services/dashboards/service/dashboard_service_test.go index 9409b74a1fe..cb46a7ee09c 100644 --- a/pkg/services/dashboards/service/dashboard_service_test.go +++ b/pkg/services/dashboards/service/dashboard_service_test.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "reflect" + "slices" "testing" "time" @@ -43,7 +44,6 @@ import ( "github.com/grafana/grafana/pkg/services/user" "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/storage/unified/resource" - "golang.org/x/exp/slices" ) func TestDashboardService(t *testing.T) { diff --git a/pkg/services/folder/folderimpl/folder.go b/pkg/services/folder/folderimpl/folder.go index 5616096b6f4..389d939be1e 100644 --- a/pkg/services/folder/folderimpl/folder.go +++ b/pkg/services/folder/folderimpl/folder.go @@ -18,7 +18,7 @@ import ( "github.com/grafana/dskit/concurrency" - dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folderv1 "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/bus" diff --git a/pkg/services/provisioning/dashboards/dashboard.go b/pkg/services/provisioning/dashboards/dashboard.go index 0c7d92d6915..c1656349adf 100644 --- a/pkg/services/provisioning/dashboards/dashboard.go +++ b/pkg/services/provisioning/dashboards/dashboard.go @@ -6,7 +6,7 @@ import ( "os" "time" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/services/dashboards" "github.com/grafana/grafana/pkg/services/folder" diff --git a/pkg/storage/legacysql/dualwrite/utils.go b/pkg/storage/legacysql/dualwrite/utils.go index 27e36a16213..12d1877a391 100644 --- a/pkg/storage/legacysql/dualwrite/utils.go +++ b/pkg/storage/legacysql/dualwrite/utils.go @@ -4,7 +4,7 @@ import ( "golang.org/x/net/context" "k8s.io/apimachinery/pkg/runtime/schema" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" ) diff --git a/pkg/storage/legacysql/dualwrite/utils_test.go b/pkg/storage/legacysql/dualwrite/utils_test.go index fd4ba1efd3e..67fdf654b63 100644 --- a/pkg/storage/legacysql/dualwrite/utils_test.go +++ b/pkg/storage/legacysql/dualwrite/utils_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/require" "k8s.io/apimachinery/pkg/runtime/schema" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" ) diff --git a/pkg/storage/unified/apistore/fake_large.go b/pkg/storage/unified/apistore/fake_large.go index f222e8470d2..b92d4bbed12 100644 --- a/pkg/storage/unified/apistore/fake_large.go +++ b/pkg/storage/unified/apistore/fake_large.go @@ -3,10 +3,11 @@ package apistore import ( "context" - dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + "k8s.io/apimachinery/pkg/runtime/schema" + + dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/utils" "github.com/grafana/grafana/pkg/storage/unified/resource" - "k8s.io/apimachinery/pkg/runtime/schema" ) type LargeObjectSupportFake struct { diff --git a/pkg/storage/unified/apistore/managed_test.go b/pkg/storage/unified/apistore/managed_test.go index 7623db8f473..24c0b3522de 100644 --- a/pkg/storage/unified/apistore/managed_test.go +++ b/pkg/storage/unified/apistore/managed_test.go @@ -10,7 +10,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" authtypes "github.com/grafana/authlib/types" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/apimachinery/utils" ) diff --git a/pkg/storage/unified/apistore/prepare_test.go b/pkg/storage/unified/apistore/prepare_test.go index 09cf01972ae..634b733ed3a 100644 --- a/pkg/storage/unified/apistore/prepare_test.go +++ b/pkg/storage/unified/apistore/prepare_test.go @@ -16,7 +16,7 @@ import ( "k8s.io/apiserver/pkg/storage" authtypes "github.com/grafana/authlib/types" - dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/apimachinery/utils" ) diff --git a/pkg/storage/unified/resource/search.go b/pkg/storage/unified/resource/search.go index 858e67f7450..0f8da3f4a78 100644 --- a/pkg/storage/unified/resource/search.go +++ b/pkg/storage/unified/resource/search.go @@ -17,7 +17,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "github.com/grafana/authlib/types" - dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardv1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" folders "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1" ) diff --git a/pkg/storage/unified/search/dashboard.go b/pkg/storage/unified/search/dashboard.go index a4b2275ad32..fc44c4cb034 100644 --- a/pkg/storage/unified/search/dashboard.go +++ b/pkg/storage/unified/search/dashboard.go @@ -8,7 +8,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - dashV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/apimachinery/utils" "github.com/grafana/grafana/pkg/services/store/kind/dashboard" "github.com/grafana/grafana/pkg/storage/unified/resource" diff --git a/pkg/tests/apis/dashboard/dashboards_test.go b/pkg/tests/apis/dashboard/dashboards_test.go index 3e4c75f11cd..c107eacb2c9 100644 --- a/pkg/tests/apis/dashboard/dashboards_test.go +++ b/pkg/tests/apis/dashboard/dashboards_test.go @@ -20,7 +20,7 @@ import ( "github.com/grafana/grafana/pkg/tests/testsuite" dashboardV0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" - dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" dashboardV2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" ) @@ -112,8 +112,8 @@ func runDashboardTest(t *testing.T, helper *apis.K8sTestHelper, gvr schema.Group func TestIntegrationDashboardsAppV0Alpha1(t *testing.T) { gvr := schema.GroupVersionResource{ - Group: "dashboard.grafana.app", - Version: "v0alpha1", + Group: dashboardV1.GROUP, + Version: dashboardV1.VERSION, Resource: "dashboards", } if testing.Short() { @@ -182,17 +182,17 @@ func TestIntegrationDashboardsAppV0Alpha1(t *testing.T) { }) } -func TestIntegrationDashboardsAppV1Alpha1(t *testing.T) { +func TestIntegrationDashboardsAppV1(t *testing.T) { gvr := schema.GroupVersionResource{ - Group: "dashboard.grafana.app", - Version: "v1alpha1", + Group: dashboardV1.GROUP, + Version: dashboardV1.VERSION, Resource: "dashboards", } if testing.Short() { t.Skip("skipping integration test") } - t.Run("v1alpha1 with dual writer mode 0", func(t *testing.T) { + t.Run("v1 with dual writer mode 0", func(t *testing.T) { helper := apis.NewK8sTestHelper(t, testinfra.GrafanaOpts{ DisableAnonymous: true, UnifiedStorageConfig: map[string]setting.UnifiedStorageConfig{ @@ -204,7 +204,7 @@ func TestIntegrationDashboardsAppV1Alpha1(t *testing.T) { runDashboardTest(t, helper, gvr) }) - t.Run("v1alpha1 with dual writer mode 1", func(t *testing.T) { + t.Run("v1 with dual writer mode 1", func(t *testing.T) { helper := apis.NewK8sTestHelper(t, testinfra.GrafanaOpts{ DisableAnonymous: true, UnifiedStorageConfig: map[string]setting.UnifiedStorageConfig{ @@ -216,7 +216,7 @@ func TestIntegrationDashboardsAppV1Alpha1(t *testing.T) { runDashboardTest(t, helper, gvr) }) - t.Run("v1alpha1 with dual writer mode 2", func(t *testing.T) { + t.Run("v1 with dual writer mode 2", func(t *testing.T) { helper := apis.NewK8sTestHelper(t, testinfra.GrafanaOpts{ DisableAnonymous: true, UnifiedStorageConfig: map[string]setting.UnifiedStorageConfig{ @@ -228,7 +228,7 @@ func TestIntegrationDashboardsAppV1Alpha1(t *testing.T) { runDashboardTest(t, helper, gvr) }) - t.Run("v1alpha1 with dual writer mode 3", func(t *testing.T) { + t.Run("v1 with dual writer mode 3", func(t *testing.T) { helper := apis.NewK8sTestHelper(t, testinfra.GrafanaOpts{ DisableAnonymous: true, UnifiedStorageConfig: map[string]setting.UnifiedStorageConfig{ @@ -240,7 +240,7 @@ func TestIntegrationDashboardsAppV1Alpha1(t *testing.T) { runDashboardTest(t, helper, gvr) }) - t.Run("v1alpha1 with dual writer mode 4", func(t *testing.T) { + t.Run("v1 with dual writer mode 4", func(t *testing.T) { t.Skip("skipping test because of authorizer issue") helper := apis.NewK8sTestHelper(t, testinfra.GrafanaOpts{ DisableAnonymous: true, @@ -343,14 +343,14 @@ func TestIntegrationLegacySupport(t *testing.T) { Path: "/api/dashboards/uid/test-v0", }, &dtos.DashboardFullWithMeta{}) require.Equal(t, 200, rsp.Response.StatusCode) - require.Equal(t, "v0alpha1", rsp.Result.Meta.APIVersion) + require.Equal(t, dashboardV0.VERSION, rsp.Result.Meta.APIVersion) rsp = apis.DoRequest(helper, apis.RequestParams{ User: helper.Org1.Admin, Path: "/api/dashboards/uid/test-v1", }, &dtos.DashboardFullWithMeta{}) require.Equal(t, 200, rsp.Response.StatusCode) - require.Equal(t, "v0alpha1", rsp.Result.Meta.APIVersion) // v0alpha1 is used as the default version for /api + require.Equal(t, dashboardV0.VERSION, rsp.Result.Meta.APIVersion) // V2 should send a not acceptable rsp = apis.DoRequest(helper, apis.RequestParams{ diff --git a/pkg/tests/apis/dashboard/integration/api_validation_test.go b/pkg/tests/apis/dashboard/integration/api_validation_test.go index 6b28d6b2a39..86c163b97fe 100644 --- a/pkg/tests/apis/dashboard/integration/api_validation_test.go +++ b/pkg/tests/apis/dashboard/integration/api_validation_test.go @@ -9,10 +9,15 @@ import ( "strings" "testing" - 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/apps/folder/pkg/apis/folder/v1beta1" + "github.com/stretchr/testify/require" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime/schema" + + dashboardV0 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" + dashboardV2 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v2alpha1" + foldersV1 "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" @@ -22,10 +27,6 @@ import ( "github.com/grafana/grafana/pkg/tests/testinfra" "github.com/grafana/grafana/pkg/tests/testsuite" "github.com/grafana/grafana/pkg/util" - "github.com/stretchr/testify/require" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/apimachinery/utils" @@ -258,11 +259,11 @@ func runDashboardValidationTests(t *testing.T, ctx TestContext) { }{ { name: "v0alpha1 dashboard with wrong spec should not throw on v0", - resourceInfo: dashboardv0alpha1.DashboardResourceInfo, + resourceInfo: dashboardV0.DashboardResourceInfo, expectSpecErr: false, testObject: &unstructured.Unstructured{ Object: map[string]interface{}{ - "apiVersion": dashboardv0alpha1.DashboardResourceInfo.TypeMeta().APIVersion, + "apiVersion": dashboardV0.DashboardResourceInfo.TypeMeta().APIVersion, "kind": "Dashboard", "metadata": map[string]interface{}{ "generateName": "test-", @@ -279,11 +280,11 @@ func runDashboardValidationTests(t *testing.T, ctx TestContext) { }, { name: "v1 dashboard with wrong spec should throw on v1", - resourceInfo: dashboardv1.DashboardResourceInfo, + resourceInfo: dashboardV1.DashboardResourceInfo, expectSpecErr: true, testObject: &unstructured.Unstructured{ Object: map[string]interface{}{ - "apiVersion": dashboardv1.DashboardResourceInfo.TypeMeta().APIVersion, + "apiVersion": dashboardV1.DashboardResourceInfo.TypeMeta().APIVersion, "kind": "Dashboard", "metadata": map[string]interface{}{ "generateName": "test-", @@ -300,11 +301,11 @@ func runDashboardValidationTests(t *testing.T, ctx TestContext) { }, { name: "v2alpha1 dashboard with correct spec should not throw on v2", - resourceInfo: dashboardv2alpha1.DashboardResourceInfo, + resourceInfo: dashboardV2.DashboardResourceInfo, expectSpecErr: false, testObject: &unstructured.Unstructured{ Object: map[string]interface{}{ - "apiVersion": dashboardv2alpha1.DashboardResourceInfo.TypeMeta().APIVersion, + "apiVersion": dashboardV2.DashboardResourceInfo.TypeMeta().APIVersion, "kind": "Dashboard", "metadata": map[string]interface{}{ "generateName": "test-", @@ -786,12 +787,12 @@ func createTestContext(t *testing.T, helper *apis.K8sTestHelper, orgUsers apis.O // getDashboardGVR returns the dashboard GroupVersionResource func getDashboardGVR() schema.GroupVersionResource { - return dashboardv1.DashboardResourceInfo.GroupVersionResource() + return dashboardV1.DashboardResourceInfo.GroupVersionResource() } // getFolderGVR returns the folder GroupVersionResource func getFolderGVR() schema.GroupVersionResource { - return folders.FolderResourceInfo.GroupVersionResource() + return foldersV1.FolderResourceInfo.GroupVersionResource() } // Get a resource client for the specified user @@ -822,8 +823,8 @@ func createFolderObject(t *testing.T, title string, namespace string, parentFold folderObj := &unstructured.Unstructured{ Object: map[string]interface{}{ - "apiVersion": folders.FolderResourceInfo.GroupVersion().String(), - "kind": folders.FolderResourceInfo.GroupVersionKind().Kind, + "apiVersion": foldersV1.FolderResourceInfo.GroupVersion().String(), + "kind": foldersV1.FolderResourceInfo.GroupVersionKind().Kind, "metadata": map[string]interface{}{ "generateName": "test-folder-", "namespace": namespace, @@ -878,8 +879,8 @@ func createDashboardObject(t *testing.T, title string, folderUID string, generat dashObj := &unstructured.Unstructured{ Object: map[string]interface{}{ - "apiVersion": dashboardv1.DashboardResourceInfo.GroupVersion().String(), - "kind": dashboardv1.DashboardResourceInfo.GroupVersionKind().Kind, + "apiVersion": dashboardV1.DashboardResourceInfo.GroupVersion().String(), + "kind": dashboardV1.DashboardResourceInfo.GroupVersionKind().Kind, "metadata": map[string]interface{}{ "generateName": "test-", "annotations": map[string]interface{}{ @@ -1464,7 +1465,7 @@ func runDashboardPermissionTests(t *testing.T, ctx TestContext) { //statusErr := ctx.Helper.AsStatusError(err) //require.Equal(t, http.StatusNotFound, int(statusErr.Status().Code), "Should get 404 Not Found") // TODO: Find out why this throws a 500 instead of a 404 with this message: - // an error on the server (\"Internal Server Error: \\\"/apis/dashboard.grafana.app/v1alpha1/namespaces/org-3/dashboards/test-cs6xk\\\": Dashboard not found\") has prevented the request from succeeding" + // an error on the server (\"Internal Server Error: \\\"/apis/dashboard.grafana.app/v1beta1/namespaces/org-3/dashboards/test-cs6xk\\\": Dashboard not found\") has prevented the request from succeeding" // Clean up err = adminClient.Resource.Delete(context.Background(), org1DashUID, v1.DeleteOptions{}) @@ -1649,7 +1650,7 @@ func runCrossOrgTests(t *testing.T, org1Ctx, org2Ctx TestContext) { require.Error(t, err, "Should not be able to access dashboard from another org") //statusErr := org1Ctx.Helper.AsStatusError(err) // TODO: Find out why this throws a 500 instead of a 404 with this message: - // "an error on the server (\"Internal Server Error: \\\"/apis/dashboard.grafana.app/v1alpha1/namespaces/default/dashboards/test-rbm2q\\\": Dashboard not found\") has prevented the request from succeeding" + // "an error on the server (\"Internal Server Error: \\\"/apis/dashboard.grafana.app/v1beta1/namespaces/default/dashboards/test-rbm2q\\\": Dashboard not found\") has prevented the request from succeeding" //require.Equal(t, http.StatusNotFound, int(statusErr.Status().Code), "Should get 404 Not Found") // Get a dashboard as admin from the target org to then send an update request @@ -1871,7 +1872,7 @@ func runDashboardHttpTest(t *testing.T, ctx TestContext, foreignOrgCtx TestConte "POST", locTC.name, userTC.name) // Construct the dashboard URL - dashboardPath := fmt.Sprintf("/apis/dashboard.grafana.app/v1alpha1/namespaces/%s/dashboards", ctx.Helper.Namespacer(ctx.OrgID)) + dashboardPath := fmt.Sprintf("/apis/dashboard.grafana.app/v1beta1/namespaces/%s/dashboards", ctx.Helper.Namespacer(ctx.OrgID)) // Create dashboard JSON with a single template var metadata string @@ -1884,7 +1885,7 @@ func runDashboardHttpTest(t *testing.T, ctx TestContext, foreignOrgCtx TestConte dashboardJSON := fmt.Sprintf(`{ "kind": "Dashboard", - "apiVersion": "dashboard.grafana.app/v1alpha1", + "apiVersion": "dashboard.grafana.app/v1beta1", "metadata": { %s }, @@ -1915,7 +1916,7 @@ func runDashboardHttpTest(t *testing.T, ctx TestContext, foreignOrgCtx TestConte "Failed to %s dashboard as %s: %s", "POST", userTC.user.Identity.GetLogin(), createResp.Response.Status) // Construct the dashboard path with the actual UID for GET/DELETE - dashboardPath = fmt.Sprintf("/apis/dashboard.grafana.app/v1alpha1/namespaces/%s/dashboards/%s", + dashboardPath = fmt.Sprintf("/apis/dashboard.grafana.app/v1beta1/namespaces/%s/dashboards/%s", ctx.Helper.Namespacer(ctx.OrgID), dashboardUID) // Verify the dashboard was created by getting it via the admin client diff --git a/pkg/tests/apis/dashboard/testdata/dashboard-test-v1.yaml b/pkg/tests/apis/dashboard/testdata/dashboard-test-v1.yaml index 6ad80f602c6..18dee5c28d9 100644 --- a/pkg/tests/apis/dashboard/testdata/dashboard-test-v1.yaml +++ b/pkg/tests/apis/dashboard/testdata/dashboard-test-v1.yaml @@ -1,4 +1,4 @@ -apiVersion: dashboard.grafana.app/v1alpha1 +apiVersion: dashboard.grafana.app/v1beta1 kind: Dashboard metadata: name: test-v1 diff --git a/pkg/tests/apis/openapi_snapshots/dashboard.grafana.app-v1alpha1.json b/pkg/tests/apis/openapi_snapshots/dashboard.grafana.app-v1beta1.json similarity index 95% rename from pkg/tests/apis/openapi_snapshots/dashboard.grafana.app-v1alpha1.json rename to pkg/tests/apis/openapi_snapshots/dashboard.grafana.app-v1beta1.json index 1aaa37acfa1..b93e2c4642e 100644 --- a/pkg/tests/apis/openapi_snapshots/dashboard.grafana.app-v1alpha1.json +++ b/pkg/tests/apis/openapi_snapshots/dashboard.grafana.app-v1beta1.json @@ -2,10 +2,10 @@ "openapi": "3.0.0", "info": { "description": "Grafana dashboards as resources", - "title": "dashboard.grafana.app/v1alpha1" + "title": "dashboard.grafana.app/v1beta1" }, "paths": { - "/apis/dashboard.grafana.app/v1alpha1/": { + "/apis/dashboard.grafana.app/v1beta1/": { "get": { "tags": [ "API Discovery" @@ -36,7 +36,7 @@ } } }, - "/apis/dashboard.grafana.app/v1alpha1/namespaces/{namespace}/dashboards": { + "/apis/dashboard.grafana.app/v1beta1/namespaces/{namespace}/dashboards": { "get": { "tags": [ "Dashboard" @@ -141,27 +141,27 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardList" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardList" } }, "application/json;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardList" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardList" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardList" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardList" } }, "application/vnd.kubernetes.protobuf;stream=watch": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardList" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardList" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardList" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardList" } } } @@ -170,7 +170,7 @@ "x-kubernetes-action": "list", "x-kubernetes-group-version-kind": { "group": "dashboard.grafana.app", - "version": "v1alpha1", + "version": "v1beta1", "kind": "Dashboard" } }, @@ -213,17 +213,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } }, @@ -235,17 +235,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } } @@ -255,17 +255,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } } @@ -275,17 +275,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } } @@ -294,7 +294,7 @@ "x-kubernetes-action": "post", "x-kubernetes-group-version-kind": { "group": "dashboard.grafana.app", - "version": "v1alpha1", + "version": "v1beta1", "kind": "Dashboard" } }, @@ -448,7 +448,7 @@ "x-kubernetes-action": "deletecollection", "x-kubernetes-group-version-kind": { "group": "dashboard.grafana.app", - "version": "v1alpha1", + "version": "v1beta1", "kind": "Dashboard" } }, @@ -474,7 +474,7 @@ } ] }, - "/apis/dashboard.grafana.app/v1alpha1/namespaces/{namespace}/dashboards/{name}": { + "/apis/dashboard.grafana.app/v1beta1/namespaces/{namespace}/dashboards/{name}": { "get": { "tags": [ "Dashboard" @@ -487,17 +487,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } } @@ -506,7 +506,7 @@ "x-kubernetes-action": "get", "x-kubernetes-group-version-kind": { "group": "dashboard.grafana.app", - "version": "v1alpha1", + "version": "v1beta1", "kind": "Dashboard" } }, @@ -549,17 +549,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } }, @@ -571,17 +571,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } } @@ -591,17 +591,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } } @@ -610,7 +610,7 @@ "x-kubernetes-action": "put", "x-kubernetes-group-version-kind": { "group": "dashboard.grafana.app", - "version": "v1alpha1", + "version": "v1beta1", "kind": "Dashboard" } }, @@ -712,7 +712,7 @@ "x-kubernetes-action": "delete", "x-kubernetes-group-version-kind": { "group": "dashboard.grafana.app", - "version": "v1alpha1", + "version": "v1beta1", "kind": "Dashboard" } }, @@ -791,17 +791,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } } @@ -811,17 +811,17 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/vnd.kubernetes.protobuf": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } }, "application/yaml": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } } } @@ -830,7 +830,7 @@ "x-kubernetes-action": "patch", "x-kubernetes-group-version-kind": { "group": "dashboard.grafana.app", - "version": "v1alpha1", + "version": "v1beta1", "kind": "Dashboard" } }, @@ -866,7 +866,7 @@ } ] }, - "/apis/dashboard.grafana.app/v1alpha1/namespaces/{namespace}/dashboards/{name}/dto": { + "/apis/dashboard.grafana.app/v1beta1/namespaces/{namespace}/dashboards/{name}/dto": { "get": { "tags": [ "Dashboard" @@ -879,7 +879,7 @@ "content": { "*/*": { "schema": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardWithAccessInfo" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardWithAccessInfo" } } } @@ -888,7 +888,7 @@ "x-kubernetes-action": "connect", "x-kubernetes-group-version-kind": { "group": "dashboard.grafana.app", - "version": "v1alpha1", + "version": "v1beta1", "kind": "DashboardWithAccessInfo" } }, @@ -918,7 +918,7 @@ }, "components": { "schemas": { - "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.AnnotationActions": { + "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.AnnotationActions": { "type": "object", "required": [ "canAdd", @@ -940,7 +940,7 @@ } } }, - "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.AnnotationPermission": { + "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.AnnotationPermission": { "type": "object", "required": [ "dashboard", @@ -951,7 +951,7 @@ "default": {}, "allOf": [ { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.AnnotationActions" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.AnnotationActions" } ] }, @@ -959,13 +959,13 @@ "default": {}, "allOf": [ { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.AnnotationActions" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.AnnotationActions" } ] } } }, - "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard": { + "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard": { "type": "object", "required": [ "metadata", @@ -1001,7 +1001,7 @@ "default": {}, "allOf": [ { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardStatus" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardStatus" } ] } @@ -1010,11 +1010,11 @@ { "group": "dashboard.grafana.app", "kind": "Dashboard", - "version": "v1alpha1" + "version": "v1beta1" } ] }, - "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardAccess": { + "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardAccess": { "description": "Information about how the requesting user can use a given dashboard", "type": "object", "required": [ @@ -1027,7 +1027,7 @@ ], "properties": { "annotationsPermissions": { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.AnnotationPermission" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.AnnotationPermission" }, "canAdmin": { "type": "boolean", @@ -1059,7 +1059,7 @@ } } }, - "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardConversionStatus": { + "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardConversionStatus": { "description": "ConversionStatus is the status of the conversion of the dashboard.", "type": "object", "required": [ @@ -1085,7 +1085,7 @@ } } }, - "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardList": { + "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardList": { "type": "object", "required": [ "metadata", @@ -1102,7 +1102,7 @@ "default": {}, "allOf": [ { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.Dashboard" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.Dashboard" } ] } @@ -1124,24 +1124,24 @@ { "group": "dashboard.grafana.app", "kind": "DashboardList", - "version": "v1alpha1" + "version": "v1beta1" } ] }, - "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardStatus": { + "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardStatus": { "type": "object", "properties": { "conversion": { "description": "Optional conversion status.", "allOf": [ { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardConversionStatus" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardConversionStatus" } ] } } }, - "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardWithAccessInfo": { + "com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardWithAccessInfo": { "description": "This is like the legacy DTO where access and metadata are all returned in a single call", "type": "object", "required": [ @@ -1155,7 +1155,7 @@ "default": {}, "allOf": [ { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardAccess" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardAccess" } ] }, @@ -1187,7 +1187,7 @@ "default": {}, "allOf": [ { - "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1alpha1.DashboardStatus" + "$ref": "#/components/schemas/com.github.grafana.grafana.apps.dashboard.pkg.apis.dashboard.v1beta1.DashboardStatus" } ] } @@ -1196,7 +1196,7 @@ { "group": "dashboard.grafana.app", "kind": "DashboardWithAccessInfo", - "version": "v1alpha1" + "version": "v1beta1" } ] }, diff --git a/pkg/tests/apis/openapi_test.go b/pkg/tests/apis/openapi_test.go index 3249f61d192..409960cb7b7 100644 --- a/pkg/tests/apis/openapi_test.go +++ b/pkg/tests/apis/openapi_test.go @@ -65,7 +65,7 @@ func TestIntegrationOpenAPIs(t *testing.T) { Version: "v0alpha1", }, { Group: "dashboard.grafana.app", - Version: "v1alpha1", + Version: "v1beta1", }, { Group: "dashboard.grafana.app", Version: "v2alpha1", diff --git a/pkg/tests/apis/provisioning/client_test.go b/pkg/tests/apis/provisioning/client_test.go index af46419d983..7f11699e3ab 100644 --- a/pkg/tests/apis/provisioning/client_test.go +++ b/pkg/tests/apis/provisioning/client_test.go @@ -7,6 +7,7 @@ import ( "github.com/stretchr/testify/require" "k8s.io/apimachinery/pkg/runtime/schema" + dashboardV1 "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" "github.com/grafana/grafana/pkg/registry/apis/provisioning/resources" ) @@ -24,22 +25,24 @@ func TestIntegrationProvisioning_Client(t *testing.T) { t.Run("dashboard client support", func(t *testing.T) { _, _, err := clients.ForResource(schema.GroupVersionResource{ - Group: "dashboard.grafana.app", + Group: dashboardV1.GROUP, + Version: dashboardV1.VERSION, Resource: "dashboards", - Version: "v1alpha1", }) require.NoError(t, err) - // With empty version, we should get the preferred version (v1alpha1) - _, _, err = clients.ForResource(schema.GroupVersionResource{ - Group: "dashboard.grafana.app", + // With empty version, we should get the preferred version (v1beta1) + _, gvk, err := clients.ForResource(schema.GroupVersionResource{ + Group: dashboardV1.GROUP, Resource: "dashboards", }) require.NoError(t, err) + require.Equal(t, dashboardV1.VERSION, gvk.Version) + require.Equal(t, "Dashboard", gvk.Kind) _, _, err = clients.ForKind(schema.GroupVersionKind{ - Group: "dashboard.grafana.app", - Version: "v1alpha1", + Group: dashboardV1.GROUP, + Version: dashboardV1.VERSION, Kind: "Dashboard", }) require.NoError(t, err) diff --git a/pkg/tests/apis/provisioning/exportunifiedtorepository/root_dashboard.json b/pkg/tests/apis/provisioning/exportunifiedtorepository/root_dashboard.json index a144c917c64..b2008d618b0 100644 --- a/pkg/tests/apis/provisioning/exportunifiedtorepository/root_dashboard.json +++ b/pkg/tests/apis/provisioning/exportunifiedtorepository/root_dashboard.json @@ -1,5 +1,5 @@ { - "apiVersion": "dashboard.grafana.app/v1alpha1", + "apiVersion": "dashboard.grafana.app/v1beta1", "kind": "Dashboard", "metadata": { "name": "root_dashboard", diff --git a/pkg/tests/apis/provisioning/helper_test.go b/pkg/tests/apis/provisioning/helper_test.go index 66b76bc2a65..e7226447fd1 100644 --- a/pkg/tests/apis/provisioning/helper_test.go +++ b/pkg/tests/apis/provisioning/helper_test.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest" - dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1alpha1" + dashboard "github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v1beta1" 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" diff --git a/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.test.ts b/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.test.ts index e8ebbd08d02..0721d2f32cf 100644 --- a/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.test.ts +++ b/public/app/features/dashboard-scene/pages/DashboardScenePageStateManager.test.ts @@ -1235,7 +1235,7 @@ const v1ProvisionedDashboardResource = { resource: { type: { group: 'dashboard.grafana.app', - version: 'v1alpha1', + version: 'v1beta1', kind: 'Dashboard', resource: 'dashboards', }, @@ -1243,7 +1243,7 @@ const v1ProvisionedDashboardResource = { existing: {}, action: 'update', dryRun: { - apiVersion: 'dashboard.grafana.app/v1alpha1', + apiVersion: 'dashboard.grafana.app/v1beta1', kind: 'Dashboard', metadata: { annotations: { diff --git a/public/app/features/dashboard/api/types.ts b/public/app/features/dashboard/api/types.ts index 8735cd23ddd..e9c66c24cfc 100644 --- a/public/app/features/dashboard/api/types.ts +++ b/public/app/features/dashboard/api/types.ts @@ -34,7 +34,7 @@ export interface DashboardVersionError extends Error { status: number; data: { // The version which was stored when the dashboard was created / updated. - // Currently known versions are: 'v2alpha1' | 'v1alpha1' | 'v0alpha1' + // Currently known versions are: 'v2alpha1' | 'v1beta1' | 'v0alpha1' storedVersion: string; message: string; }; diff --git a/public/app/features/dashboard/api/v1.test.ts b/public/app/features/dashboard/api/v1.test.ts index 46c1fc47ef6..c0beae229b8 100644 --- a/public/app/features/dashboard/api/v1.test.ts +++ b/public/app/features/dashboard/api/v1.test.ts @@ -8,7 +8,7 @@ import { K8sDashboardAPI } from './v1'; const mockDashboardDto: DashboardWithAccessInfo = { kind: 'DashboardWithAccessInfo', - apiVersion: 'v1alpha1', + apiVersion: 'v1beta1', metadata: { name: 'dash-uid', @@ -293,7 +293,7 @@ describe('v1 dashboard API', () => { await expect(api.getDashboardDTO('test')).rejects.toThrow('backend conversion not yet implemented'); }); - it.each(['v0alpha1', 'v1alpha1'])('should not throw for %s conversion errors', async (correctStoredVersion) => { + it.each(['v0alpha1', 'v1beta1'])('should not throw for %s conversion errors', async (correctStoredVersion) => { const mockDashboardWithError = { ...mockDashboardDto, status: { diff --git a/public/app/features/dashboard/api/v1.ts b/public/app/features/dashboard/api/v1.ts index 818b1b814a3..d02a1b06502 100644 --- a/public/app/features/dashboard/api/v1.ts +++ b/public/app/features/dashboard/api/v1.ts @@ -27,7 +27,7 @@ export class K8sDashboardAPI implements DashboardAPI { constructor() { this.client = new ScopedResourceClient({ group: 'dashboard.grafana.app', - version: 'v1alpha1', + version: 'v1beta1', resource: 'dashboards', }); } diff --git a/public/app/features/dashboard/api/v2.test.ts b/public/app/features/dashboard/api/v2.test.ts index 1c6be876e9a..a1bb6cfbe33 100644 --- a/public/app/features/dashboard/api/v2.test.ts +++ b/public/app/features/dashboard/api/v2.test.ts @@ -244,14 +244,14 @@ describe('v2 dashboard API', () => { await expect(api.getDashboardDTO('test')).rejects.toThrow('backend conversion not yet implemented'); }); - it('should throw DashboardVersionError for v1alpha1 conversion error', async () => { + it('should throw DashboardVersionError for v1beta1 conversion error', async () => { const mockDashboardWithError = { ...mockDashboardDto, status: { conversion: { failed: true, error: 'backend conversion not yet implemented', - storedVersion: 'v1alpha1', + storedVersion: 'v1beta1', }, }, }; diff --git a/public/app/features/dashboard/api/v2.ts b/public/app/features/dashboard/api/v2.ts index 59d3544c532..0f6d1486051 100644 --- a/public/app/features/dashboard/api/v2.ts +++ b/public/app/features/dashboard/api/v2.ts @@ -44,6 +44,7 @@ export class K8sDashboardV2API if ( dashboard.status?.conversion?.failed && (dashboard.status.conversion.storedVersion === 'v1alpha1' || + dashboard.status.conversion.storedVersion === 'v1beta1' || dashboard.status.conversion.storedVersion === 'v0alpha1') ) { throw new DashboardVersionError(dashboard.status.conversion.storedVersion, dashboard.status.conversion.error);