k8s: add feature toggle and stub to save dashboards k8s (#62053)

This commit is contained in:
Ryan McKinley
2023-01-25 11:10:16 -08:00
committed by GitHub
parent a0405912a8
commit 4965cf2eda
10 changed files with 154 additions and 10 deletions
@@ -31,7 +31,9 @@ var (
{Action: dashboards.ActionDashboardsWrite, Scope: dashboards.ScopeFoldersAll},
}
// DashboardServiceImpl implements the DashboardService interface
_ dashboards.DashboardService = (*DashboardServiceImpl)(nil)
_ dashboards.DashboardService = (*DashboardServiceImpl)(nil)
_ dashboards.DashboardProvisioningService = (*DashboardServiceImpl)(nil)
_ dashboards.PluginService = (*DashboardServiceImpl)(nil)
)
type DashboardServiceImpl struct {
@@ -46,6 +48,7 @@ type DashboardServiceImpl struct {
ac accesscontrol.AccessControl
}
// This is the uber service that implements a three smaller services
func ProvideDashboardService(
cfg *setting.Cfg, dashboardStore dashboards.Store, folderStore dashboards.FolderStore, dashAlertExtractor alerting.DashAlertExtractor,
features featuremgmt.FeatureToggles, folderPermissionsService accesscontrol.FolderPermissionsService,
@@ -0,0 +1,35 @@
package service
import (
"github.com/grafana/grafana/pkg/services/dashboards"
"github.com/grafana/grafana/pkg/services/featuremgmt"
"github.com/grafana/grafana/pkg/services/store/entity"
"github.com/grafana/grafana/pkg/services/store/k8saccess"
)
func ProvideSimpleDashboardService(
features featuremgmt.FeatureToggles,
svc *DashboardServiceImpl,
k8s k8saccess.K8SAccess,
store entity.EntityStoreServer,
) dashboards.DashboardService {
if features.IsEnabled(featuremgmt.FlagK8sDashboards) {
if k8s.GetSystemClient() == nil {
panic("k8s dashboards requires the k8s client registered")
}
return k8saccess.NewDashboardService(svc, store)
}
return svc
}
func ProvideDashboardProvisioningService(
features featuremgmt.FeatureToggles, orig *DashboardServiceImpl,
) dashboards.DashboardProvisioningService {
return orig
}
func ProvideDashboardPluginService(
features featuremgmt.FeatureToggles, orig *DashboardServiceImpl,
) dashboards.PluginService {
return orig
}