Wire ringtail blumeops-pg into backups + Grafana #364

Merged
eblume merged 5 commits from backup-grafana-ringtail-blumeops-pg into main 2026-06-03 12:25:31 -07:00

5 commits

Author SHA1 Message Date
71d5759eb5 borgmatic: stage SQLite dump beside source DB (minimal images lack /tmp)
The helper wrote its staging copy to /tmp, but minimal nix images (mealie)
have no /tmp, so the dump failed 'unable to open database file'. Write it
next to the source DB instead (always on a writable volume); works for any
image, shower included.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 11:32:17 -07:00
0d6584f3c3 mealie-ringtail: use python3-enabled image v3.16.0-22cfd86-nix
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 11:27:37 -07:00
22cfd864e2 mealie: add python3 to image for the borgmatic SQLite dump helper
The borgmatic k8s-sqlite-dump helper runs python3 (stdlib sqlite3 .backup)
inside the pod, but the minimal Nix mealie image had no python3 on PATH, so
the mealie SQLite backup produced a 0-byte file. Add pkgs.python3 (same
nixpkgs build mealie uses, so negligible closure growth), matching shower.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 11:26:19 -07:00
83b4306edb borgmatic: add .pgpass entry for ringtail blumeops-pg (port 5434)
The .pgpass is a hardcoded port list, not derived from the database list,
so repointing teslamate/paperless to :5434 left them without credentials
(pg_dump would fail 'no password supplied'). Add the 5434 entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 11:15:18 -07:00
f80aae693f Wire ringtail blumeops-pg into backups + Grafana
The wave-1 cutover moved paperless + teslamate (postgres) and mealie (SQLite)
to ringtail, but borgmatic and the Grafana TeslaMate datasource still pointed
at the minikube-hosted copies — so the migrated live data was unbacked and
the dashboards would break when the minikube DBs are dropped.

- Add a Tailscale Service (blumeops-pg-ringtail) + Caddy L4 route
  pg.ops.eblu.me:5434 for the ringtail blumeops-pg cluster.
- Repoint borgmatic teslamate + paperless postgres dumps to :5434 and the
  mealie SQLite dump to the ringtail kubectl target (ssh:eblume@ringtail).
- Repoint the Grafana TeslaMate datasource to pg.ops.eblu.me:5434.

Closes the post-cutover backup gap and unblocks the wave-1 decommission.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 11:02:03 -07:00