From 8fb5831e0030684d0a25fd644ce37f9173a189c1 Mon Sep 17 00:00:00 2001 From: jenkins Date: Sat, 16 May 2026 02:56:52 -0300 Subject: [PATCH] monitoring: publish atlas testing dashboard --- scripts/dashboards_render_atlas.py | 6 +++++- scripts/tests/test_dashboards_render_atlas.py | 15 +++++++++++++++ .../monitoring/dashboards/atlas-overview.json | 8 +++++++- services/monitoring/dashboards/atlas-testing.json | 4 ++-- .../monitoring/grafana-dashboard-overview.yaml | 8 +++++++- .../monitoring/grafana-dashboard-testing.yaml | 4 ++-- services/monitoring/grafana-folders.yaml | 9 +++++++++ services/monitoring/helmrelease.yaml | 14 ++++++++++++-- 8 files changed, 59 insertions(+), 9 deletions(-) diff --git a/scripts/dashboards_render_atlas.py b/scripts/dashboards_render_atlas.py index 4ac37431..35cb96c0 100644 --- a/scripts/dashboards_render_atlas.py +++ b/scripts/dashboards_render_atlas.py @@ -34,6 +34,7 @@ data: PROM_DS = {"type": "prometheus", "uid": "atlas-vm"} PUBLIC_FOLDER = "overview" +PUBLIC_DASHBOARD_FOLDER = "atlas-public" PRIVATE_FOLDER = "atlas-internal" ASTRAIOS_MOUNTPOINT = "/mnt/astraios" GLOBAL_STATUS_COLOR_TONES = { @@ -1515,6 +1516,7 @@ DASHBOARD_LINK_TITLES = { "atlas-network": "Open Atlas Network", "atlas-mail": "Open Atlas Mail", "atlas-jobs": "Open Atlas Testing", + "atlas-testing": "Open Atlas Testing", "atlas-power": "Open Atlas Power", "atlas-gitops": "Open Atlas GitOps", "atlas-gpu": "Open Atlas GPU", @@ -2574,7 +2576,7 @@ def build_overview(): }, "time": {"from": "now-1h", "to": "now"}, "refresh": "1m", - "links": [], + "links": link_to("atlas-testing"), } @@ -4333,6 +4335,8 @@ def build_jobs_dashboard(): def build_testing_dashboard(): dashboard = build_jobs_dashboard() dashboard["uid"] = "atlas-testing" + dashboard["folderUid"] = PUBLIC_DASHBOARD_FOLDER + dashboard["editable"] = False return dashboard diff --git a/scripts/tests/test_dashboards_render_atlas.py b/scripts/tests/test_dashboards_render_atlas.py index c75d447b..0b4bbdb8 100644 --- a/scripts/tests/test_dashboards_render_atlas.py +++ b/scripts/tests/test_dashboards_render_atlas.py @@ -67,6 +67,9 @@ def test_overview_uses_readable_quality_power_and_gitops_panels(): dashboard = mod.build_overview() panels_by_title = {panel["title"]: panel for panel in flatten_panels(dashboard["panels"])} + assert dashboard["links"] == [ + {"title": "Open Atlas Testing", "url": "/d/atlas-testing", "targetBlank": True} + ] assert "Platform Test Success Rate" not in panels_by_title assert panels_by_title["Gate Checks Passing by Suite"]["type"] == "bargauge" assert panels_by_title["Gate Checks Passing by Suite"]["options"]["displayMode"] == "basic" @@ -110,6 +113,18 @@ def test_testing_suite_variable_uses_canonical_values_only(): assert [option["value"] for option in variable["options"]] == mod.PLATFORM_TEST_SUITE_NAMES +def test_testing_dashboard_is_public_but_jobs_dashboard_remains_internal(): + mod = load_module() + jobs = mod.build_jobs_dashboard() + testing = mod.build_testing_dashboard() + + assert jobs["folderUid"] == mod.PRIVATE_FOLDER + assert jobs["editable"] is True + assert testing["uid"] == "atlas-testing" + assert testing["folderUid"] == mod.PUBLIC_DASHBOARD_FOLDER + assert testing["editable"] is False + + def test_jobs_dashboard_separates_current_gate_health_from_reliability(): mod = load_module() dashboard = mod.build_jobs_dashboard() diff --git a/services/monitoring/dashboards/atlas-overview.json b/services/monitoring/dashboards/atlas-overview.json index 50ef39ae..a1fbe5ca 100644 --- a/services/monitoring/dashboards/atlas-overview.json +++ b/services/monitoring/dashboards/atlas-overview.json @@ -3950,5 +3950,11 @@ "to": "now" }, "refresh": "1m", - "links": [] + "links": [ + { + "title": "Open Atlas Testing", + "url": "/d/atlas-testing", + "targetBlank": true + } + ] } diff --git a/services/monitoring/dashboards/atlas-testing.json b/services/monitoring/dashboards/atlas-testing.json index 903705c1..dd7e7b36 100644 --- a/services/monitoring/dashboards/atlas-testing.json +++ b/services/monitoring/dashboards/atlas-testing.json @@ -1,8 +1,8 @@ { "uid": "atlas-testing", "title": "Atlas Testing", - "folderUid": "atlas-internal", - "editable": true, + "folderUid": "atlas-public", + "editable": false, "panels": [ { "id": 2, diff --git a/services/monitoring/grafana-dashboard-overview.yaml b/services/monitoring/grafana-dashboard-overview.yaml index c90daaec..e29f195a 100644 --- a/services/monitoring/grafana-dashboard-overview.yaml +++ b/services/monitoring/grafana-dashboard-overview.yaml @@ -3959,5 +3959,11 @@ data: "to": "now" }, "refresh": "1m", - "links": [] + "links": [ + { + "title": "Open Atlas Testing", + "url": "/d/atlas-testing", + "targetBlank": true + } + ] } diff --git a/services/monitoring/grafana-dashboard-testing.yaml b/services/monitoring/grafana-dashboard-testing.yaml index 2f0bd0f5..71c94fd7 100644 --- a/services/monitoring/grafana-dashboard-testing.yaml +++ b/services/monitoring/grafana-dashboard-testing.yaml @@ -10,8 +10,8 @@ data: { "uid": "atlas-testing", "title": "Atlas Testing", - "folderUid": "atlas-internal", - "editable": true, + "folderUid": "atlas-public", + "editable": false, "panels": [ { "id": 2, diff --git a/services/monitoring/grafana-folders.yaml b/services/monitoring/grafana-folders.yaml index 54b278fc..993dda48 100644 --- a/services/monitoring/grafana-folders.yaml +++ b/services/monitoring/grafana-folders.yaml @@ -19,6 +19,15 @@ data: permission: Edit - role: Admin permission: Admin + - uid: atlas-public + title: Atlas Public + permissions: + - role: Viewer + permission: View + - role: Editor + permission: Edit + - role: Admin + permission: Admin - uid: atlas-internal title: Atlas Internal permissions: diff --git a/services/monitoring/helmrelease.yaml b/services/monitoring/helmrelease.yaml index 46f9ca99..eb88b865 100644 --- a/services/monitoring/helmrelease.yaml +++ b/services/monitoring/helmrelease.yaml @@ -517,13 +517,22 @@ spec: path: /var/lib/grafana/dashboards/jobs - name: testing orgId: 1 - folder: Atlas Internal + folder: Atlas Public type: file disableDeletion: false - editable: true + editable: false updateIntervalSeconds: 10 options: path: /var/lib/grafana/dashboards/testing + - name: testing-public + orgId: 2 + folder: Atlas Public + type: file + disableDeletion: false + editable: false + updateIntervalSeconds: 10 + options: + path: /var/lib/grafana/dashboards/testing-public - name: power orgId: 1 folder: Atlas Internal @@ -544,6 +553,7 @@ spec: mail: grafana-dashboard-mail jobs: grafana-dashboard-jobs testing: grafana-dashboard-testing + testing-public: grafana-dashboard-testing power: grafana-dashboard-power extraConfigmapMounts: - name: grafana-folders