fix(deploy): grafana copier provisions EVERY dashboard json, not a hand-listed subset
copy_grafana_provisioning named llm-fleet.json alone, so a new board in shared/grafana/provisioning/dashboards/ silently never reached /opt/grafana/provisioning. Measured 2026-10-21: the containers board was merged, seam-tested, and documented as working since 2026-10-20, yet was NEVER provisioned — its panel fixes were undeployable; the other four boards existed on disk only because someone hand-copied them once (and host-system.json there had gone stale against the repo). The copier now globs the directory, and GRAFANA_PROV_ROOT lets the new bats case run the copier for real into a sandbox (red against the old hand-listed body, green against the glob). Vault: the copier law + the containers incident on Observability Provisioning, the corrected dashboards claim on Observability. Note: a mktemp sandbox + trap RETURN races bats' trap machinery (the dir vanishes mid-function); BATS_TEST_TMPDIR is the safe idiom.
This commit is contained in:
1 parent
127621bdd7
commit
c41384e03d
4 files changed
+69
-23
No files matched your search
@@ -644,3 +644,27 @@ assert not any('container_network' in e or 'container_fs_' in e for e in names),
|
||||
[ "$status" -eq 0 ]
|
||||
[ "$output" = "cadvisor" ]
|
||||
}
|
||||
|
||||
@test "the grafana copier provisions EVERY dashboard json, not a hand-listed subset" {
|
||||
# Behavioral, not a text grep: the copier is extracted and executed with a
|
||||
# stubbed run_privileged against a sandbox. The fleet provider turns each
|
||||
# file in its directory into a dashboard, so a file the copier skips is a
|
||||
# dashboard that silently never exists (the containers board lived in the
|
||||
# repo, never reached /opt, and its fixes were undeployable).
|
||||
# BATS_TEST_TMPDIR: per-test, removed by bats itself; a mktemp dir with a
|
||||
# RETURN trap races bats' own trap machinery and vanishes mid-function.
|
||||
local sandbox="$BATS_TEST_TMPDIR/sandbox"
|
||||
(
|
||||
cd "$REPO_ROOT"
|
||||
eval "$(sed -n '/^copy_grafana_provisioning()/,/^}/p' scripts/deploy-remote.sh)"
|
||||
run_privileged() { "$@"; }
|
||||
export GRAFANA_PROV_ROOT="$sandbox/opt/grafana"
|
||||
copy_grafana_provisioning
|
||||
)
|
||||
local f
|
||||
for f in "$REPO_ROOT"/shared/grafana/provisioning/dashboards/*.json; do
|
||||
[ -f "$sandbox/opt/grafana/provisioning/dashboards/$(basename "$f")" ]
|
||||
done
|
||||
[ -f "$sandbox/opt/grafana/provisioning/dashboards/provider.yml" ]
|
||||
[ -f "$sandbox/opt/grafana/provisioning/datasources/prometheus.yml" ]
|
||||
}
|
||||
Reference in new issue
Block a user