From a12ff86e92b0bbdf68851482c087277f4b816a48 Mon Sep 17 00:00:00 2001 From: Gerd Oberlechner Date: Tue, 25 Feb 2025 08:44:59 +0100 Subject: [PATCH] grafana zone redundancy Signed-off-by: Gerd Oberlechner --- config/config.msft.yaml | 1 + config/config.schema.json | 4 ++++ config/config.yaml | 1 + config/public-cloud-cs-pr.json | 1 + config/public-cloud-dev.json | 1 + config/public-cloud-msft-int.json | 1 + config/public-cloud-personal-dev.json | 1 + .../configurations/global-grafana.tmpl.bicepparam | 1 + dev-infrastructure/templates/global-grafana.bicep | 15 +++++++++++++++ 9 files changed, 26 insertions(+) diff --git a/config/config.msft.yaml b/config/config.msft.yaml index 26f204411..dc412175c 100644 --- a/config/config.msft.yaml +++ b/config/config.msft.yaml @@ -188,6 +188,7 @@ defaults: # Metrics monitoring: + grafanaZoneRedundantMode: Enabled workspaceName: 'arohcp-{{ .ctx.regionShort }}' # Logs diff --git a/config/config.schema.json b/config/config.schema.json index 310568241..5a2c382fd 100644 --- a/config/config.schema.json +++ b/config/config.schema.json @@ -799,6 +799,9 @@ "grafanaName": { "type": "string" }, + "grafanaZoneRedundantMode": { + "$ref": "#/definitions/zoneRedundantMode" + }, "workspaceName": { "type": "string" } @@ -807,6 +810,7 @@ "required": [ "grafanaAdminGroupPrincipalId", "grafanaName", + "grafanaZoneRedundantMode", "workspaceName" ] }, diff --git a/config/config.yaml b/config/config.yaml index 78f371c7d..4bc3b7513 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -294,6 +294,7 @@ clouds: monitoring: workspaceName: 'arohcp-{{ .ctx.regionShort }}' grafanaName: 'arohcp-dev' + grafanaZoneRedundantMode: Enabled grafanaAdminGroupPrincipalId: 6b6d3adf-8476-4727-9812-20ffdef2b85c # Logs logs: diff --git a/config/public-cloud-cs-pr.json b/config/public-cloud-cs-pr.json index 23000739e..d1910bceb 100644 --- a/config/public-cloud-cs-pr.json +++ b/config/public-cloud-cs-pr.json @@ -210,6 +210,7 @@ "monitoring": { "grafanaAdminGroupPrincipalId": "6b6d3adf-8476-4727-9812-20ffdef2b85c", "grafanaName": "arohcp-dev", + "grafanaZoneRedundantMode": "Enabled", "workspaceName": "arohcp-cspr" }, "msiKeyVault": { diff --git a/config/public-cloud-dev.json b/config/public-cloud-dev.json index 894b469ee..e083ef23f 100644 --- a/config/public-cloud-dev.json +++ b/config/public-cloud-dev.json @@ -210,6 +210,7 @@ "monitoring": { "grafanaAdminGroupPrincipalId": "6b6d3adf-8476-4727-9812-20ffdef2b85c", "grafanaName": "arohcp-dev", + "grafanaZoneRedundantMode": "Enabled", "workspaceName": "arohcp-dev" }, "msiKeyVault": { diff --git a/config/public-cloud-msft-int.json b/config/public-cloud-msft-int.json index da421ad65..3455fb808 100644 --- a/config/public-cloud-msft-int.json +++ b/config/public-cloud-msft-int.json @@ -210,6 +210,7 @@ "monitoring": { "grafanaAdminGroupPrincipalId": "2fdb57d4-3fd3-415d-b604-1d0e37a188fe", "grafanaName": "arohcp-int", + "grafanaZoneRedundantMode": "Enabled", "workspaceName": "arohcp-int" }, "msiKeyVault": { diff --git a/config/public-cloud-personal-dev.json b/config/public-cloud-personal-dev.json index a7ff5e7ff..5cc6bff6a 100644 --- a/config/public-cloud-personal-dev.json +++ b/config/public-cloud-personal-dev.json @@ -210,6 +210,7 @@ "monitoring": { "grafanaAdminGroupPrincipalId": "6b6d3adf-8476-4727-9812-20ffdef2b85c", "grafanaName": "arohcp-dev", + "grafanaZoneRedundantMode": "Enabled", "workspaceName": "arohcp-usw3tst" }, "msiKeyVault": { diff --git a/dev-infrastructure/configurations/global-grafana.tmpl.bicepparam b/dev-infrastructure/configurations/global-grafana.tmpl.bicepparam index 81441420d..669eb2761 100644 --- a/dev-infrastructure/configurations/global-grafana.tmpl.bicepparam +++ b/dev-infrastructure/configurations/global-grafana.tmpl.bicepparam @@ -3,3 +3,4 @@ using '../templates/global-grafana.bicep' param globalMSIName = '{{ .global.globalMSIName }}' param grafanaName = '{{ .monitoring.grafanaName }}' param grafanaAdminGroupPrincipalId = '{{ .monitoring.grafanaAdminGroupPrincipalId }}' +param grafanaZoneRedundantMode = '{{ .monitoring.grafanaZoneRedundantMode }}' diff --git a/dev-infrastructure/templates/global-grafana.bicep b/dev-infrastructure/templates/global-grafana.bicep index 82059daad..68e6f0fc7 100644 --- a/dev-infrastructure/templates/global-grafana.bicep +++ b/dev-infrastructure/templates/global-grafana.bicep @@ -1,3 +1,8 @@ +import { getLocationAvailabilityZonesCSV, determineZoneRedundancy, csvToArray } from '../modules/common.bicep' + +@description('Azure Global Location') +param location string = resourceGroup().location + @description('The global msi name') param globalMSIName string @@ -7,6 +12,13 @@ param grafanaName string @description('The admin group principal ID to manage Grafana') param grafanaAdminGroupPrincipalId string +@description('The zone redundant mode of Grafana') +param grafanaZoneRedundantMode string + +@description('Availability Zones to use for the infrastructure, as a CSV string. Defaults to all the zones of the location') +param locationAvailabilityZones string = getLocationAvailabilityZonesCSV(location) +var locationAvailabilityZoneList = csvToArray(locationAvailabilityZones) + resource ev2MSI 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' existing = { name: globalMSIName } @@ -33,6 +45,9 @@ resource grafana 'Microsoft.Dashboard/grafana@2023-09-01' = { identity: { type: 'SystemAssigned' } + properties: { + zoneRedundancy: determineZoneRedundancy(locationAvailabilityZoneList, grafanaZoneRedundantMode) ? 'Enabled' : 'Disabled' + } } resource contributorRole 'Microsoft.Authorization/roleAssignments@2022-04-01' = {