← ClaudeAtlas

sales-demos-dashboardlisted

Push Grafana Cloud dashboards (dashboard-as-code). Runs playbooks/deploy_dashboard.yml. TRIGGER when: the user wants to push, deploy, or update the Grafana dashboard, apply dashboard-as-code, or set up the cluster health dashboard. SKIP: if the user only wants to query Grafana Cloud (that is the MCP server from /sales-demos-mcp) or deploy Alloy (that is /sales-demos-alloy).
ericcames/sales.demos · ★ 1 · DevOps & Infrastructure · score 67
Install: claude install-skill ericcames/sales.demos
# sales-demos-dashboard Push Grafana Cloud dashboards defined as committed JSON. Issue [#275](https://github.com/ericcames/sales.demos/issues/275). ## There is an AAP path now too (#318) `AAP Observability - 2 Deploy Dashboards` runs the same playbook from AAP, so this no longer has to come off a laptop. Use whichever suits; the skill is still the quicker loop while iterating on dashboard JSON. **It is not per-environment, and that surprises people.** One Grafana Cloud serves both environments, so the template exists in both controllers and pushes to the *same* folder — running it from demo also updates what sandbox sees. This skill contains **no logic**. All the work is in [`playbooks/deploy_dashboard.yml`](../../../playbooks/deploy_dashboard.yml). See `CLAUDE.md` → *Skills and playbooks*. ## What it does 1. Creates a "Sales Demos" folder in Grafana Cloud (idempotent) 2. Reads `playbooks/files/grafana/cluster-health.json` 3. Pushes the dashboard via the Grafana HTTP API with `overwrite: true` The dashboard covers cluster nodes, KubeVirt VMs, AAP platform health, and logs. A `cluster` template variable makes it work for both sandbox and demo. ## Preflight Check Run these before doing anything else. Every one must pass. ```bash VAULT_ID="sales.demos@$HOME/secrets/.vault_pass_sales_demos" # 1. Vault password file exists test -s "$HOME/secrets/.vault_pass_sales_demos" \ && echo "pass: vault password file" \ || echo "FAIL: ~/secrets/.vault_pass_sales_demos missing