Update RAIL-HO-WP-0005: migration ladder complete, backup cron fixed
Mark T01 and T10 done after paginated forge comparison shows 0 Gitea-only repos and all State Hub remotes on Forgejo. Advance T11 to progress with per-repo cutover complete; Gitea read-only marking awaits operator signoff. Refresh forgejo-migration-inventory.md with 2026-07-08 closure addendum. Document backup cron PATH fix and 3/7 gate status after manual run.
This commit is contained in:
parent
36fcfd4d85
commit
b3a065a1c9
2 changed files with 72 additions and 35 deletions
|
|
@ -109,19 +109,19 @@ Integration evidence now comes from **in-production probes and repo pilots**:
|
|||
| 1 | `coulomb/glas-harness` | Non-production git+SSH+CI routing drill | **done** |
|
||||
| 2 | `coulomb/key-cape` | Image-build workflow + registry pull on railiance01 | **done** |
|
||||
| 2.5 | `railiance-enablement`, `railiance-infra`, `railiance-apps`, `railiance-platform`, `railiance-cluster` | Stack repos on Forgejo + S4 templates | **done** |
|
||||
| 3 | Production set (`state-hub`, `issue-core`, …) | Canonical remotes, sweep paths, deploy loops | **in progress** (`state-hub` cutover 2026-07-06) |
|
||||
| 3 | Production set (`state-hub`, `issue-core`, …) | Canonical remotes, sweep paths, deploy loops | **done** (2026-07-08) |
|
||||
|
||||
Each tier must pass before the next. T03 (isolated probe namespace) is cancelled;
|
||||
acceptance criteria below are tracked across T05, T07, T08, and T10 instead.
|
||||
|
||||
Still to prove before T11:
|
||||
Still to prove before T11 closeout:
|
||||
|
||||
- ~~SMTP/password reset end-to-end (T06).~~ **done** (2026-07-08).
|
||||
- ~~Backup restore from offsite artifact (T09).~~ **done** (2026-07-08); 7-day
|
||||
scheduled backup gate still counting.
|
||||
- Issues/releases/wiki/LFS per inventory classification (T10 matrix) for ~40
|
||||
remaining Gitea-only repos.
|
||||
scheduled backup gate **3/7** (cron PATH fixed 2026-07-08).
|
||||
- ~~Repo migration ladder (T10).~~ **done** (2026-07-08); 0 Gitea-only repos.
|
||||
- ~~Operator SSH on Forgejo as `tegwick` (T05/T10).~~ **done**.
|
||||
- Gitea read-only marking + operator signoff (T11).
|
||||
|
||||
## Target Architecture
|
||||
|
||||
|
|
@ -143,7 +143,7 @@ operator / agents / developers
|
|||
|
||||
```task
|
||||
id: RAIL-HO-WP-0005-T01
|
||||
status: progress
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "cf59d171-5629-45c9-9d44-8d6499827ffc"
|
||||
```
|
||||
|
|
@ -166,11 +166,11 @@ Minimum inventory:
|
|||
Forgejo before cutover and classifies each migration item as automatic,
|
||||
manual, unsupported, or explicitly out of scope.
|
||||
|
||||
**Gap (2026-07-08):** Gitea partial inventory via org API (50 repos, 2 members,
|
||||
2 teams, 0 org hooks; sample deploy keys/hooks zero). Full Gitea user/token sweep
|
||||
needs PAT with `read:admin`. Migration gap: **40 repos** on Gitea not yet on
|
||||
Forgejo (16 mirrored). Hub drift for Forgejo-hosted repos **cleared** (incl.
|
||||
`ops-warden` 2026-07-08).
|
||||
**Done (2026-07-08):** Paginated org comparison — Gitea **79**, Forgejo **84**,
|
||||
**0** Gitea-only repos. State Hub **82 Forgejo** / 0 Gitea remotes. Workstation
|
||||
checkouts: no `gitea-remote` origins remain. Gitea admin partial (no `read:admin`
|
||||
PAT); sample deploy keys/webhooks zero on both forges. Inventory artifact current
|
||||
in `docs/forgejo-migration-inventory.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -250,14 +250,15 @@ Minimum scope:
|
|||
packages, Actions artifacts, and logs.
|
||||
- Restore runbook for database and blob/package data.
|
||||
|
||||
**Partial (2026-07-07):** `forgejo-db` CNPG cluster healthy on railiance01.
|
||||
**Partial (2026-07-08):** `forgejo-db` CNPG cluster healthy on railiance01.
|
||||
SOPS secret path and network policies in `railiance-platform`. **Backup target
|
||||
decided (Option A, Nextcloud).** **Automation:** `railiance-platform`
|
||||
`make forgejo-backup` / `docs/forgejo-backup.md` — daily `forgejo dump` +
|
||||
`pg_dump` → age → Nextcloud `forgejo/`. **First production backup succeeded
|
||||
2026-07-07** (~686M dump + 2.1M pg_dump uploaded). Daily cron installed
|
||||
(02:15 UTC). **Nextcloud restore drill passed 2026-07-08.** Remaining: 7-day
|
||||
success gate (2/7 as of 2026-07-08).
|
||||
`pg_dump` → age → Nextcloud `forgejo/`. Daily cron 02:15 UTC; **cron PATH fixed
|
||||
2026-07-08** (`kubectl` was missing from cron env — Jul 8 02:15 run failed).
|
||||
**Nextcloud restore drill passed 2026-07-08.** Manual backup
|
||||
`20260708T131118Z` (~890M dump + 13M pg_dump) succeeded. Remaining: 7-day
|
||||
success gate (**3/7** as of 2026-07-08).
|
||||
|
||||
**Done when:** platform dependencies can be deployed and restored without the
|
||||
Forgejo app running.
|
||||
|
|
@ -456,12 +457,14 @@ Makefile targets. **First scheduled backup:** 20260707T180844Z (~686M, 14 repos)
|
|||
Daily cron 02:15 UTC. **Nextcloud restore drill passed 2026-07-08** — decrypt
|
||||
uploaded `.age` artifact, chunked copy, 14 org repos restored in
|
||||
`forgejo-restore-drill` (evidence: `docs/forgejo-restore-drill-evidence.md`).
|
||||
Remaining: 7 consecutive backup successes (gate counting); Nextcloud file-drop
|
||||
is upload-only — read-lane TBD for DR without workstation cache.
|
||||
Remaining: 7 consecutive backup successes (**3/7** as of 2026-07-08); cron PATH
|
||||
fixed so nightly runs resume. Nextcloud file-drop is upload-only — read-lane TBD
|
||||
for DR without workstation cache.
|
||||
|
||||
**Done when:** a fresh backup restores to a working isolated Forgejo instance
|
||||
with repository, package, and user recovery checks passing **and** scheduled
|
||||
backups run without manual intervention.
|
||||
backups run without manual intervention. Restore drill **met**; scheduled
|
||||
automation **met** pending 7-day gate.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -469,7 +472,7 @@ backups run without manual intervention.
|
|||
|
||||
```task
|
||||
id: RAIL-HO-WP-0005-T10
|
||||
status: progress
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "6befde73-00bc-4643-be0b-a7ce7944e75f"
|
||||
```
|
||||
|
|
@ -515,12 +518,14 @@ Hub: **12 Forgejo** / 51 Gitea remotes (Forgejo-hosted registered repos aligned)
|
|||
**Wave 2 tier-2 (2026-07-08):** `ops-bridge`, `open-reuse`, `artifact-store`
|
||||
promoted to Forgejo + hub `remote_url` patched. Forgejo org now **20 repos**.
|
||||
|
||||
**Remaining:** tier-3 promotion for remaining production repos (`llm-connect`,
|
||||
`the-custodian`, `flex-auth`, …); scheduled backups 7-day gate (2/7);
|
||||
stabilization closeout + operator signoff before coulombcore teardown.
|
||||
**Done (2026-07-08):** Paginated forge comparison shows **0** Gitea-only repos;
|
||||
all 79 Gitea org repos mirrored on Forgejo (84 total). State Hub remotes all
|
||||
Forgejo; workstation `gitea-remote` origins **0**. Tier-3 production set
|
||||
(incl. `state-hub`, `the-custodian`, `llm-connect`, `flex-auth`) on Forgejo.
|
||||
Evidence: `docs/forgejo-migration-inventory.md` addendum 2026-07-08.
|
||||
|
||||
**Done when:** tiers 0–2 pass with written result matrices and no unknown
|
||||
critical migration gaps remain for production repos. **Tiers 0–2.5: met.**
|
||||
critical migration gaps remain for production repos. **Met.**
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -528,7 +533,7 @@ critical migration gaps remain for production repos. **Tiers 0–2.5: met.**
|
|||
|
||||
```task
|
||||
id: RAIL-HO-WP-0005-T11
|
||||
status: todo
|
||||
status: progress
|
||||
priority: high
|
||||
needs_human: true
|
||||
state_hub_task_id: "b1b66687-ca33-4971-b312-743c8e059c5e"
|
||||
|
|
@ -550,6 +555,12 @@ operator approval per `CUST-WP-0054` drain sequence.
|
|||
**Emergency fallback only:** org-wide freeze-all — not the primary plan; use if
|
||||
staged drift becomes unacceptable (document rollback before invoking).
|
||||
|
||||
**Partial (2026-07-08):** Per-repo promotion **complete** — all Gitea org
|
||||
repos exist on Forgejo; State Hub remotes and workstation origins on
|
||||
`forgejo-remote`. Remaining for operator signoff: mark Gitea repos read-only
|
||||
(per-repo or org-wide), document rollback runbook closeout, confirm no active
|
||||
workflows still target `gitea-remote`.
|
||||
|
||||
**Done when:** all Railiance/Custodian repos use Forgejo as primary, Gitea is
|
||||
read-only fallback, and rollback instructions are documented.
|
||||
|
||||
|
|
@ -599,13 +610,11 @@ T05+T08 ──► T10 migration ladder ──► T11 production cutover ──
|
|||
T03 isolated probe: CANCELLED (superseded by T05 + in-production pilots)
|
||||
```
|
||||
|
||||
**Current focus (2026-07-08):** T05/T06/T07/T08 **done**; T09 restore drill **passed**;
|
||||
backup 7-day gate **2/7** (chunked `forgejo-backup` fix in `railiance-platform`;
|
||||
cron 02:15 UTC). T10: tier-1 `ihp-railiance-probe` + tier-2 `ops-bridge`,
|
||||
`open-reuse`, `artifact-store` promoted; Forgejo org **20 repos**; hub remotes
|
||||
patched for all promoted registered repos.
|
||||
Next: backup gate (passive), tier-3 wave with operator approval (`llm-connect`,
|
||||
`the-custodian`, `flex-auth`).
|
||||
**Current focus (2026-07-08):** T01/T05/T06/T07/T08/T10 **done**; T04/T09
|
||||
await 7-day backup gate (**3/7**; cron PATH fixed 2026-07-08). Forgejo org
|
||||
**84 repos**; **0** Gitea-only; State Hub **82 Forgejo** remotes. T11 **in
|
||||
progress** — per-repo cutover complete; operator signoff for Gitea read-only +
|
||||
rollback doc closeout. T12 blocked on T11 stabilization.
|
||||
|
||||
**Absorbed by `CUST-WP-0054-T04`:** forge + CI on railiance01; workstation
|
||||
build retirement; staged repo promotion before State Hub primary move (T05).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue