fix(stg-global): create V2 Grafana on supported major version via stgGlobalV2.grafanaMajorVersion (AROSLSRE-1362)#5847
Conversation
… (AROSLSRE-1362) Azure Managed Grafana retired v11 for NEW workspace creation on 2026-06-15 (only 12/13 accepted on Standard SKU). The parallel STG-global V2 workspace is newly created, so it must be born on 13; shared monitoring.grafanaMajorVersion stays 11 for the grandfathered live fleet. Adds a V2-only stgGlobalV2.grafanaMajorVersion (empty-sentinel default, stg=13) and points the V2 global-infra-stg bicepparam at it, mirroring stgGlobalV2.grafanaName.
There was a problem hiding this comment.
Pull request overview
This PR introduces a V2-only override for Azure Managed Grafana major version in the transient stgGlobalV2 config block, so the STG-global V2 deployment can create a new Grafana workspace on a supported major version without changing the shared monitoring.grafanaMajorVersion used by the existing fleet.
Changes:
- Add
stgGlobalV2.grafanaMajorVersionto config schema + defaults (empty-sentinel) and set it to"13"in the MSFT stg overlay. - Rewire the STG-global V2 bicepparam (
global-infra-stg.tmpl.bicepparam) to usestgGlobalV2.grafanaMajorVersioninstead ofmonitoring.grafanaMajorVersion. - Regenerate rendered dev config outputs to include the new key under
stgGlobalV2.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| dev-infrastructure/configurations/global-infra-stg.tmpl.bicepparam | Points V2 STG global-infra deployment at stgGlobalV2.grafanaMajorVersion for workspace creation. |
| config/config.schema.json | Adds grafanaMajorVersion to stgGlobalV2 schema and marks it required. |
| config/config.yaml | Adds stgGlobalV2.grafanaMajorVersion: empty-sentinel default to satisfy missingkey=error rendering. |
| config/config.msft.clouds-overlay.yaml | Supplies the real stg value ("13") for stgGlobalV2.grafanaMajorVersion. |
| config/rendered/dev/pers/westus3.yaml | Materialized dev render updated with stgGlobalV2.grafanaMajorVersion. |
| config/rendered/dev/perf/westus3.yaml | Materialized dev render updated with stgGlobalV2.grafanaMajorVersion. |
| config/rendered/dev/dev/westus3.yaml | Materialized dev render updated with stgGlobalV2.grafanaMajorVersion. |
| config/rendered/dev/cspr/westus3.yaml | Materialized dev render updated with stgGlobalV2.grafanaMajorVersion. |
| config/rendered/dev/ci01/centralus.yaml | Materialized dev render updated with stgGlobalV2.grafanaMajorVersion. |
| config/rendered/dev/ci00/centralus.yaml | Materialized dev render updated with stgGlobalV2.grafanaMajorVersion. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hbhushan3, raelga The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What
Adds a transient, V2-only
stgGlobalV2.grafanaMajorVersionconfig value (empty-sentinel default;13for stg in the MSFT overlay) and points the parallel STG-global "V2" Grafana deployment at it, instead of the sharedmonitoring.grafanaMajorVersion.config/config.schema.json— newgrafanaMajorVersionproperty +requiredentry on thestgGlobalV2object.config/config.yaml—grafanaMajorVersion: "empty-sentinel"default (so every cloud/env resolves undermissingkey=error).config/config.msft.clouds-overlay.yaml— real valuegrafanaMajorVersion: "13"for stg.dev-infrastructure/configurations/global-infra-stg.tmpl.bicepparam— rewiresparam grafanaMajorVersionfrom{{ .monitoring.grafanaMajorVersion }}→{{ .stgGlobalV2.grafanaMajorVersion }}.config/rendered/**— regenerated viamake -C config/ materialize.This mirrors the existing
stgGlobalV2.grafanaNamepattern (added in #5813) one-for-one.Why
Azure Managed Grafana retired Grafana 11 for new workspace creation on 2026-06-15 — new workspaces on the Standard SKU now only accept major version 12 or 13. The STG-global V2 migration creates a brand-new Grafana workspace in a dedicated subscription, so it hit:
The shared
monitoring.grafanaMajorVersionis still"11", which is correct for the existing, grandfathered live fleet (Azure auto-upgrades those 11 → 12 in place). We must not bump the shared value just to unblock the new V2 workspace — that would force an irreversible, breaking 11 → 12 upgrade on the live fleet.A V2-only override keeps the two concerns separate:
monitoring.grafanaMajorVersion(11, grandfathered).13viastgGlobalV2.grafanaMajorVersion.(The broader "keep the shared value on a supported release" hygiene is tracked separately in AROSLSRE-1364.)
Testing
Standard) at major version 13; provisioning succeeded:make -C config/ materializepasses; schema is valid JSON.stgGlobalV2.grafanaMajorVersionresolves toempty-sentinelin all dev renders (dev gets no stg overlay); the real13is supplied by the MSFT overlay and surfaces in the downstream (sdp-pipelines) stg render, exactly likestgGlobalV2.grafanaName.stgGlobalV2.*values remain consumed only by the stg/uksouth-only V2 pipelines; empty-sentinel is never deployed.Notes / follow-up
stgGlobalV2block (including this field) is removed at migration decommission.grafanactl reconcileshell step, the newGRAFANA_MAJOR_VERSIONconfigRef must be re-pointed frommonitoring.grafanaMajorVersion→stgGlobalV2.grafanaMajorVersionas well. The config field added here stays valid across that change; only the wiring relocates.Refs: AROSLSRE-1362. Follows #5813 (
stgGlobalV2.grafanaName).