Plugins: Add synchronous CDN plugin loader (#99096)

* WIP

* Run plugin validations and validation steps sequentially if feature is off

* Remove dependency between sources.Service and pluginscdn.Service

* lint

* Parallelize validation only if class is CDN

* re-generate feature toggles

* remove waitgroup usage

* PR review: Add loader concurrency limit setting

* re-generate feature toggles

* pr review feedback

* fix const name

* Skip module.js validation for cdn plugins

* do not run validation steps in parallel

* lint

* reduce diff

* re-generate feature toggles

* lint

* pr review feedback

* remove leftover config.PluginManagementCfg from sources.Service
This commit is contained in:
Giuseppe Guerra
2025-02-07 11:07:08 +01:00
committed by GitHub
parent e291140be3
commit ccb9cab131
16 changed files with 105 additions and 22 deletions
+6
View File
@@ -1794,6 +1794,12 @@ var (
HideFromDocs: true,
RequiresRestart: true,
},
{
Name: "pluginsCDNSyncLoader",
Description: "Load plugins from CDN synchronously",
Stage: FeatureStageExperimental,
Owner: grafanaPluginsPlatformSquad,
},
}
)
+1
View File
@@ -238,3 +238,4 @@ alertingAlertmanagerExtraDedupStage,experimental,@grafana/alerting-squad,false,t
alertingAlertmanagerExtraDedupStageStopPipeline,experimental,@grafana/alerting-squad,false,true,false
newLogsPanel,experimental,@grafana/observability-logs,false,false,true
grafanaconThemes,experimental,@grafana/grafana-frontend-platform,false,true,false
pluginsCDNSyncLoader,experimental,@grafana/plugins-platform-backend,false,false,false
1 Name Stage Owner requiresDevMode RequiresRestart FrontendOnly
238 alertingAlertmanagerExtraDedupStageStopPipeline experimental @grafana/alerting-squad false true false
239 newLogsPanel experimental @grafana/observability-logs false false true
240 grafanaconThemes experimental @grafana/grafana-frontend-platform false true false
241 pluginsCDNSyncLoader experimental @grafana/plugins-platform-backend false false false
+4
View File
@@ -962,4 +962,8 @@ const (
// FlagGrafanaconThemes
// Enables the temporary themes for GrafanaCon
FlagGrafanaconThemes = "grafanaconThemes"
// FlagPluginsCDNSyncLoader
// Load plugins from CDN synchronously
FlagPluginsCDNSyncLoader = "pluginsCDNSyncLoader"
)
+12
View File
@@ -3034,6 +3034,18 @@
"frontend": true
}
},
{
"metadata": {
"name": "pluginsCDNSyncLoader",
"resourceVersion": "1737026684018",
"creationTimestamp": "2025-01-16T11:24:44Z"
},
"spec": {
"description": "Load plugins from CDN synchronously",
"stage": "experimental",
"codeowner": "@grafana/plugins-platform-backend"
}
},
{
"metadata": {
"name": "pluginsDetailsRightPanel",