Files
zeekay dac18a2a87 V8 Open Cloud migration chart + Postgres decommission runbook
Plan of record for Hanzo V8: one unified Go binary that go:embeds console2,
every capability FE (console2) or BE (cloud), all-SQLite (no internal
Postgres), one Service / one origin, all live.

Sourced from the 7-mapper CTO assessment (wf_bcf82f7c-b54): ~40% — unified
binary live+healthy, go:embed mechanism wired+tested, but the real SPA embed,
the RED cloud build, the Postgres GitOps cutover, and the FE→BE contract
fixes are still ahead.

- migration.yaml — the chart: migration matrix (component → FE/BE/SQLITE/
  KILL/COLLAPSE), the 20-rank execution order, the 10-step Postgres
  decommission runbook (EXPORT first, SHUTDOWN last), and the
  keep_postgres_product carve-out that protects the customer-facing
  managed-Postgres product from the internal-storage shutdown.
- LLM.md — narrative + how to read the chart.
- scripts/pg-export.sh — safe first step: kubectl-exec pg_dump every internal
  DB to the operator desktop, verified, before any migration. Read-only on
  source; dumps are gitignored (never committed).
2026-07-01 09:45:59 -07:00

1.6 KiB

hanzoai/migration

Migration & decommission plan of record for Hanzo V8 "Open Cloud" — one unified Go binary (ghcr.io/hanzoai/cloud) that go:embeds the console2 SPA, every capability in the FE (console2) or BE (cloud), all-SQLite (no internal Postgres), collapsed to one Service / one origin, all live in production.

What's here

File Role
migration.yaml The chart (single source of truth): the migration matrix, the ordered execution list, and the Postgres decommission runbook.
LLM.md The narrative — what V8 is, where we are (~40%), the four load-bearing gaps, how to read the chart.
scripts/pg-export.sh The safe first step — pg_dump every internal DB to the operator desktop before any migration.

Status: ~40%

The unified binary is live and healthy (api.cloud.hanzo.ai/v1/health → ok, SQLite-backed, Postgres refused at boot). The go:embed mechanism is wired and tested. Still ahead: the real SPA embed, the RED cloud build, the Postgres shutdown (code-ready, not executed in GitOps), and the FE→BE contract fixes.

The rule that protects customers

All-SQLite is about internal storage. The customer-facing managed-Postgres product (the pgx provisioner + Neon cloud-sql) stays. The sql StatefulSet is both — carve out the product role before any shutdown (see keep_postgres_product and step 2 of the decommission runbook). Nothing is killed before a verified replacement and a verified backup.

Order of operations

migration.yaml:execution, rank 1 first. Export before flip; shutdown dead last.