Library Panels: Remove k8s connections feature flag (#108881)

This commit is contained in:
Stephanie Hingtgen
2025-07-30 16:46:19 +00:00
committed by GitHub
parent c8c017a6f5
commit 34019e5ec0
7 changed files with 27 additions and 60 deletions
@@ -282,10 +282,6 @@ export interface FeatureToggles {
*/
kubernetesLibraryPanels?: boolean;
/**
* Routes library panel connections requests from /api to using search
*/
kubernetesLibraryPanelConnections?: boolean;
/**
* Use the kubernetes API in the frontend for dashboards
*/
kubernetesDashboards?: boolean;
@@ -474,40 +474,36 @@ func (dr *DashboardServiceImpl) Count(ctx context.Context, scopeParams *quota.Sc
}
func (dr *DashboardServiceImpl) GetDashboardsByLibraryPanelUID(ctx context.Context, libraryPanelUID string, orgID int64) ([]*dashboards.DashboardRef, error) {
if dr.features.IsEnabledGlobally(featuremgmt.FlagKubernetesLibraryPanelConnections) {
res, err := dr.k8sclient.Search(ctx, orgID, &resourcepb.ResourceSearchRequest{
Options: &resourcepb.ListOptions{
Fields: []*resourcepb.Requirement{
{
Key: search.DASHBOARD_LIBRARY_PANEL_REFERENCE,
Operator: string(selection.Equals),
Values: []string{libraryPanelUID},
},
res, err := dr.k8sclient.Search(ctx, orgID, &resourcepb.ResourceSearchRequest{
Options: &resourcepb.ListOptions{
Fields: []*resourcepb.Requirement{
{
Key: search.DASHBOARD_LIBRARY_PANEL_REFERENCE,
Operator: string(selection.Equals),
Values: []string{libraryPanelUID},
},
},
Limit: listAllDashboardsLimit,
})
if err != nil {
return nil, err
}
results, err := dashboardsearch.ParseResults(res, 0)
if err != nil {
return nil, err
}
dashes := make([]*dashboards.DashboardRef, 0, len(results.Hits))
for _, row := range results.Hits {
dashes = append(dashes, &dashboards.DashboardRef{
UID: row.Name,
FolderUID: row.Folder,
ID: row.Field.GetNestedInt64(resource.SEARCH_FIELD_LEGACY_ID), // nolint:staticcheck
})
}
return dashes, nil
},
Limit: listAllDashboardsLimit,
})
if err != nil {
return nil, err
}
return dr.dashboardStore.GetDashboardsByLibraryPanelUID(ctx, libraryPanelUID, orgID)
results, err := dashboardsearch.ParseResults(res, 0)
if err != nil {
return nil, err
}
dashes := make([]*dashboards.DashboardRef, 0, len(results.Hits))
for _, row := range results.Hits {
dashes = append(dashes, &dashboards.DashboardRef{
UID: row.Name,
FolderUID: row.Folder,
ID: row.Field.GetNestedInt64(resource.SEARCH_FIELD_LEGACY_ID), // nolint:staticcheck
})
}
return dashes, nil
}
func (dr *DashboardServiceImpl) CountDashboardsInOrg(ctx context.Context, orgID int64) (int64, error) {
@@ -2493,7 +2493,7 @@ func TestGetDashboardsByLibraryPanelUID(t *testing.T) {
dashboardStore: &fakeStore,
folderService: folderSvc,
ac: actest.FakeAccessControl{ExpectedEvaluate: true},
features: featuremgmt.WithFeatures(featuremgmt.FlagKubernetesLibraryPanelConnections),
features: featuremgmt.WithFeatures(),
publicDashboardService: fakePublicDashboardService,
k8sclient: k8sCliMock,
}
-7
View File
@@ -469,13 +469,6 @@ var (
Owner: grafanaAppPlatformSquad,
RequiresRestart: true, // changes the API routing
},
{
Name: "kubernetesLibraryPanelConnections",
Description: "Routes library panel connections requests from /api to using search",
Stage: FeatureStageExperimental,
Owner: grafanaAppPlatformSquad,
RequiresRestart: true, // changes the API routing
},
{
Name: "kubernetesDashboards",
Description: "Use the kubernetes API in the frontend for dashboards",
-1
View File
@@ -60,7 +60,6 @@ disableClassicHTTPHistogram,experimental,@grafana/grafana-backend-services-squad
formatString,GA,@grafana/dataviz-squad,false,false,true
kubernetesSnapshots,experimental,@grafana/grafana-app-platform-squad,false,true,false
kubernetesLibraryPanels,experimental,@grafana/grafana-app-platform-squad,false,true,false
kubernetesLibraryPanelConnections,experimental,@grafana/grafana-app-platform-squad,false,true,false
kubernetesDashboards,experimental,@grafana/grafana-app-platform-squad,false,false,true
dashboardDisableSchemaValidationV1,experimental,@grafana/grafana-app-platform-squad,false,false,false
dashboardDisableSchemaValidationV2,experimental,@grafana/grafana-app-platform-squad,false,false,false
1 Name Stage Owner requiresDevMode RequiresRestart FrontendOnly
60 formatString GA @grafana/dataviz-squad false false true
61 kubernetesSnapshots experimental @grafana/grafana-app-platform-squad false true false
62 kubernetesLibraryPanels experimental @grafana/grafana-app-platform-squad false true false
kubernetesLibraryPanelConnections experimental @grafana/grafana-app-platform-squad false true false
63 kubernetesDashboards experimental @grafana/grafana-app-platform-squad false false true
64 dashboardDisableSchemaValidationV1 experimental @grafana/grafana-app-platform-squad false false false
65 dashboardDisableSchemaValidationV2 experimental @grafana/grafana-app-platform-squad false false false
-4
View File
@@ -251,10 +251,6 @@ const (
// Routes library panel requests from /api to the /apis endpoint
FlagKubernetesLibraryPanels = "kubernetesLibraryPanels"
// FlagKubernetesLibraryPanelConnections
// Routes library panel connections requests from /api to using search
FlagKubernetesLibraryPanelConnections = "kubernetesLibraryPanelConnections"
// FlagKubernetesDashboards
// Use the kubernetes API in the frontend for dashboards
FlagKubernetesDashboards = "kubernetesDashboards"
-13
View File
@@ -1756,19 +1756,6 @@
"hideFromAdminPage": true
}
},
{
"metadata": {
"name": "kubernetesLibraryPanelConnections",
"resourceVersion": "1753448760331",
"creationTimestamp": "2025-07-25T13:06:00Z"
},
"spec": {
"description": "Routes library panel connections requests from /api to using search",
"stage": "experimental",
"codeowner": "@grafana/grafana-app-platform-squad",
"requiresRestart": true
}
},
{
"metadata": {
"name": "kubernetesLibraryPanels",