ARO-26057: reconcile Grafana ADX integration fabrics - #4878
ARO-26057: reconcile Grafana ADX integration fabrics#4878Simon Wiencki (swiencki) wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds ARO-HCP support to provision and clean up Azure Data Explorer (Kusto) data sources in the shared Managed Grafana workspace, integrated into the existing geography rollout flow.
Changes:
- Extend Kusto IaC to optionally grant Grafana’s managed identity DB-level Viewer access and output the cluster URI.
- Add geography pipeline steps to fetch global Grafana outputs and provision/update ADX Grafana datasources via Azure CLI.
- Introduce configuration flags/schema + docs, and update the Kusto delete cleanup to remove the matching Grafana datasource.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/monitoring.md | Documents ADX/Kusto datasource provisioning gates, naming, validation, and teardown behavior. |
| dev-infrastructure/templates/kusto.bicep | Threads optional Grafana resource ID into the Kusto module and exposes kustoUri output. |
| dev-infrastructure/modules/logs/kusto/main.bicep | Grants Grafana MI Viewer on ServiceLogs when provided and surfaces cluster URI output. |
| dev-infrastructure/modules/logs/kusto/cluster.bicep | Exposes Kusto cluster uri as an output. |
| dev-infrastructure/geography-pipeline.yaml | Adds global output step and a shell step to create/update ADX Grafana datasources. |
| dev-infrastructure/configurations/kusto.tmpl.bicepparam | Adds grafanaResourceId parameter placeholder for pipeline substitution. |
| dev-infrastructure/cleanup/delete.kusto.instance.sh | Extends cleanup to also delete the corresponding Grafana datasource. |
| dev-infrastructure/cleanup/delete.kusto.instance.pipeline.yaml | Wires Grafana resource ID from global outputs into the cleanup script run. |
| config/rendered/dev/swft/uksouth.yaml | Adds default monitoring flags for ADX datasource provisioning (disabled). |
| config/rendered/dev/prow/westus3.yaml | Adds default monitoring flags for ADX datasource provisioning (disabled). |
| config/rendered/dev/pers/westus3.yaml | Adds default monitoring flags for ADX datasource provisioning (disabled). |
| config/rendered/dev/perf/westus3.yaml | Adds default monitoring flags for ADX datasource provisioning (disabled). |
| config/rendered/dev/dev/westus3.yaml | Adds default monitoring flags for ADX datasource provisioning (disabled). |
| config/rendered/dev/cspr/westus3.yaml | Adds default monitoring flags for ADX datasource provisioning (disabled). |
| config/config.yaml | Introduces new monitoring defaults for ADX provisioning flags. |
| config/config.schema.json | Defines schema/validation for the new monitoring configuration knobs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
/hold |
|
Thanks for the feedback, I'll move this to On the "update once" concern: the existing |
8d14303 to
a80a076
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 15 out of 15 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
/unhold Updated to use grafanactl. |
5d069ae to
c091e9c
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…peline Per PR #4878 review. Drops the new GrafanaDatasources call from geography-pipeline.yaml and extends the existing add-grafana-datasource in region-pipeline.yaml with the ADX block. clusterUrl sources from regional kusto-lookup output. AzureMonitor reconcile preserved via the ARO-Tools default-true. Triple-AND gate keeps the three feature flags agreeing by construction. No Go/Bicep/config/test changes.
…peline Per PR #4878 review. Drops the new GrafanaDatasources call from geography-pipeline.yaml and extends the existing add-grafana-datasource in region-pipeline.yaml with the ADX block. clusterUrl sources from regional kusto-lookup output. AzureMonitor reconcile preserved via the ARO-Tools default-true. Triple-AND gate keeps the three feature flags agreeing by construction. No Go/Bicep/config/test changes.
6131235 to
4d47166
Compare
|
Simon Wiencki (@swiencki): The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
| defaultDatabase: | ||
| configRef: kusto.serviceLogsDatabase | ||
| datasourceName: | ||
| value: "kusto-{{ .environmentName }}-{{ .azureGeoShortId }}" |
There was a problem hiding this comment.
This should reflect the actual source name.
|
Simon Wiencki (@swiencki) is this PR still needed? |
Rael Garcia (@raelga) Still needed and plan to work on it shortly after #6294 |
Copilot-Session: d00ea40f-616b-4f7b-89c5-014b59c12169
4d47166 to
cc2fd2e
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: swiencki The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
ARO-26057
What
Replaces the regional direct Grafana datasource approach with optional Managed Grafana integration-fabric reconciliation under the existing single global
GrafanaManageowner.This change:
Vieweraccess toServiceLogsonly.Why
The Managed Grafana resource provider owns datasource lifecycle and may remove datasources created directly through Grafana's HTTP API. The global integration-fabric design avoids competing regional reconcilers and keeps ownership with the resource provider.
Safety and rollout
Both gates default to false. Rollout is staged:
grafanactl manage reconcile --dry-runand confirm there are no unexpected delete operations.The configuration schema prevents integration reconciliation unless Kusto access is enabled and the geography set is non-empty.
Dependencies
go.workreplacements to the reviewed Remove temporary/now unused genuuid code #228 fork commit so CI can test the coordinated changes before Remove temporary/now unused genuuid code #228 merges.test,tooling/grafanactl,tooling/helmtest,tooling/pipeline-documentation, andtooling/templatize.The standard sdp-pipelines EV2 check currently stops at the expected stale ARO-Tools schema. Rebuilding the generator with the #228 commit passes the full
Globalentrypoint in resolve mode.Testing
make lintmake validate-config-pipelinesgo test ./tooling/templatize/pkg/pipeline/... ./tooling/helmtest/... -count=1make verifyGlobalEV2 manifest generation in resolve mode