K8s: Playlist frontend reads (#76057)

This commit is contained in:
Todd Treece
2023-10-05 15:00:36 -04:00
committed by GitHub
parent 726260b2f6
commit 664ebf771e
14 changed files with 98 additions and 17 deletions
+12 -2
View File
@@ -9,6 +9,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apiserver/pkg/registry/rest"
playlistkind "github.com/grafana/grafana/pkg/kinds/playlist"
grafanarequest "github.com/grafana/grafana/pkg/services/grafana-apiserver/endpoints/request"
"github.com/grafana/grafana/pkg/services/playlist"
)
@@ -88,8 +89,12 @@ func (s *legacyStorage) List(ctx context.Context, options *internalversion.ListO
ObjectMeta: metav1.ObjectMeta{
Name: v.UID,
},
Spec: playlistkind.Spec{
Name: v.Name,
Uid: v.UID,
Interval: v.Interval,
},
}
p.Name = v.Name + " // " + v.Interval
list.Items = append(list.Items, p)
}
if len(list.Items) == limit {
@@ -123,6 +128,11 @@ func (s *legacyStorage) Get(ctx context.Context, name string, options *metav1.Ge
ObjectMeta: metav1.ObjectMeta{
Name: p.Uid,
},
Name: p.Name + "//" + p.Interval,
Spec: playlistkind.Spec{
Name: p.Name,
Uid: p.Uid,
Interval: p.Interval,
Items: p.Items,
},
}, nil
}
+3 -1
View File
@@ -2,6 +2,8 @@ package v0alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/grafana/grafana/pkg/kinds/playlist"
)
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -12,7 +14,7 @@ type Playlist struct {
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
Name string `json:"name,omitempty"`
Spec playlist.Spec `json:"spec,omitempty"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+7
View File
@@ -831,5 +831,12 @@ var (
Stage: FeatureStageExperimental,
Owner: grafanaBiSquad,
},
{
Name: "kubernetesPlaylists",
Description: "Use the kubernetes API in the frontend for playlists",
FrontendOnly: true,
Stage: FeatureStageExperimental,
Owner: grafanaAppPlatformSquad,
},
}
)
+1
View File
@@ -118,3 +118,4 @@ externalServiceAccounts,experimental,@grafana/grafana-authnz-team,true,false,fal
alertingModifiedExport,experimental,@grafana/alerting-squad,false,false,false,false
enableNativeHTTPHistogram,experimental,@grafana/hosted-grafana-team,false,false,false,false
transformationsVariableSupport,experimental,@grafana/grafana-bi-squad,false,false,false,true
kubernetesPlaylists,experimental,@grafana/grafana-app-platform-squad,false,false,false,true
1 Name Stage Owner requiresDevMode RequiresLicense RequiresRestart FrontendOnly
118 alertingModifiedExport experimental @grafana/alerting-squad false false false false
119 enableNativeHTTPHistogram experimental @grafana/hosted-grafana-team false false false false
120 transformationsVariableSupport experimental @grafana/grafana-bi-squad false false false true
121 kubernetesPlaylists experimental @grafana/grafana-app-platform-squad false false false true
+4
View File
@@ -482,4 +482,8 @@ const (
// FlagTransformationsVariableSupport
// Allows using variables in transformations
FlagTransformationsVariableSupport = "transformationsVariableSupport"
// FlagKubernetesPlaylists
// Use the kubernetes API in the frontend for playlists
FlagKubernetesPlaylists = "kubernetesPlaylists"
)
+1
View File
@@ -7,6 +7,7 @@ app_mode = development
[feature_toggles]
grafanaAPIServer = true
kubernetesPlaylists = true
```
Start Grafana: