Update WP-0005: T07 done, tier-2.5 hub remote_url patched
Some checks are pending
CI Smoke / host-smoke (push) Waiting to run
CI Smoke / container-smoke (push) Waiting to run

Mark package registry task complete after npm probe; document hub drift
resolution for six tier-2.5 repos and current backup gate status.
This commit is contained in:
tegwick 2026-07-07 22:10:00 +02:00
parent 136fd1a47a
commit 6d05f8b6e9

View file

@ -8,7 +8,7 @@ status: active
owner: railiance owner: railiance
topic_slug: railiance topic_slug: railiance
created: "2026-05-03" created: "2026-05-03"
updated: "2026-07-10" updated: "2026-07-08"
state_hub_workstream_id: "84e17675-0d15-4268-a8bd-540124d37018" state_hub_workstream_id: "84e17675-0d15-4268-a8bd-540124d37018"
--- ---
@ -165,10 +165,11 @@ Minimum inventory:
Forgejo before cutover and classifies each migration item as automatic, Forgejo before cutover and classifies each migration item as automatic,
manual, unsupported, or explicitly out of scope. manual, unsupported, or explicitly out of scope.
**Gap (2026-07-07):** Forgejo org snapshot and tier column added in inventory **Gap (2026-07-07):** Forgejo org snapshot refreshed (14 repos; `ops-warden` tier-3).
addendum (13 repos on Forgejo; 49 on Gitea per 2026-06 pass). Authenticated Forgejo admin inventory captured (2 users, 1 team, 0 org hooks). Authenticated
Gitea admin inventory (users, teams, deploy keys, tokens, webhooks, LFS) still **Gitea** admin inventory (users, teams, deploy keys, tokens, webhooks, LFS)
pending before T11 wave for remaining production repos. still blocked — no Gitea admin PAT on workstation. Hub drift: 7 Forgejo repos
still register Gitea `remote_url` in State Hub.
--- ---
@ -248,12 +249,14 @@ Minimum scope:
packages, Actions artifacts, and logs. packages, Actions artifacts, and logs.
- Restore runbook for database and blob/package data. - Restore runbook for database and blob/package data.
**Partial (2026-07-04):** `forgejo-db` CNPG cluster healthy on railiance01 **Partial (2026-07-07):** `forgejo-db` CNPG cluster healthy on railiance01.
(`make forgejo-db-status` → Cluster in healthy state). SOPS secret path and SOPS secret path and network policies in `railiance-platform`. **Backup target
network policies in `railiance-platform`. **Backup target decided (Option A, Nextcloud).** **Automation (2026-07-10):** decided (Option A, Nextcloud).** **Automation:** `railiance-platform`
`railiance-platform` `make forgejo-backup` / `docs/forgejo-backup.md` — daily `make forgejo-backup` / `docs/forgejo-backup.md` — daily `forgejo dump` +
`forgejo dump` + `pg_dump` → age → Nextcloud `forgejo/`. Remaining: operator `pg_dump` → age → Nextcloud `forgejo/`. **First production backup succeeded
cron on workstation, 7-day success gate, restore drill from Nextcloud artifact. 2026-07-07** (~686M dump + 2.1M pg_dump uploaded). Daily cron installed
(02:15 UTC). Remaining: 7-day success gate (1/7), restore drill from Nextcloud
artifact (not `/tmp/forgejo-drill/`).
**Done when:** platform dependencies can be deployed and restored without the **Done when:** platform dependencies can be deployed and restored without the
Forgejo app running. Forgejo app running.
@ -264,7 +267,7 @@ Forgejo app running.
```task ```task
id: RAIL-HO-WP-0005-T05 id: RAIL-HO-WP-0005-T05
status: progress status: done
priority: high priority: high
state_hub_task_id: "11540ba4-d31c-4f64-836b-c6de69107aa4" state_hub_task_id: "11540ba4-d31c-4f64-836b-c6de69107aa4"
``` ```
@ -280,11 +283,15 @@ Minimum scope:
- Health/status targets in the Makefile. - Health/status targets in the Makefile.
- Migration-safe configuration for coexistence with Gitea during the cutover. - Migration-safe configuration for coexistence with Gitea during the cutover.
**Partial (2026-07-04):** `railiance-apps` deploy live — HTTPS smoke pass, **Partial (2026-07-07):** `railiance-apps` deploy live — HTTPS smoke pass,
ingress + TLS, SSH NodePort `30022`, Actions enabled, `coulomb` org, ingress + TLS, SSH NodePort `30022`, Actions enabled, `coulomb` org,
`railiance01-build-01` runner (ADR-004). Git push/pull via HTTPS and in-cluster runner (ADR-004). Git push/pull via HTTPS and `forgejo-remote` SSH
`forgejo-remote` SSH proven. Remaining: SOPS hardening for all secrets, proven as operator `tegwick` (not `forgejo_admin`). Mailer via OpenBao/ESO.
operator user accounts beyond `forgejo_admin`. `make forgejo-verify` T05 acceptance: **10 pass / 0 fail** (2026-07-07).
`make forgejo-operator-bootstrap` idempotent. Security: `INSTALL_LOCK`,
`COOKIE_SECURE`, `DISABLE_REGISTRATION`. Runner registration SOPS captured
2026-07-08 (`helm/forgejo-runner-registration.sops.yaml`; `make
forgejo-secrets-check` pass).
**Done when:** Forgejo runs on railiance01 against production platform **Done when:** Forgejo runs on railiance01 against production platform
services and can serve login, git clone/push, package registry, and admin services and can serve login, git clone/push, package registry, and admin
@ -331,7 +338,7 @@ edits, and the operator has a documented emergency path.
```task ```task
id: RAIL-HO-WP-0005-T07 id: RAIL-HO-WP-0005-T07
status: todo status: done
priority: high priority: high
state_hub_task_id: "9578f672-e2b8-43a3-8419-5f86f8871326" state_hub_task_id: "9578f672-e2b8-43a3-8419-5f86f8871326"
``` ```
@ -355,12 +362,12 @@ Acceptance:
- Retention and cleanup expectations are documented. - Retention and cleanup expectations are documented.
- Package data is included in backup and restore drills. - Package data is included in backup and restore drills.
**Partial (2026-07-07):** OCI registry live (`/v2/` auth challenge). Tier-0/2 **Partial (2026-07-08):** OCI registry live (`/v2/` auth challenge). Tier-0/2
images built and pulled on railiance01: `forgejo-actions-probe`, `key-cape` images built and pulled on railiance01. Tier-3 `state-hub` images proven.
(`crictl pull forgejo.coulomb.social/coulomb/key-cape:latest` succeeded). **npm (2026-07-08):** `@coulomb/forgejo-npm-probe@0.0.1` publish + install
Tier-3 `state-hub` images built and deployed (`main-f9f0091`, `latest` on verified; `make forgejo-npm-smoke`; docs `railiance-apps/docs/forgejo-package-registry.md`;
railiance01, 2026-07-06). Remaining: **npm** publish/pull hardening, retention CI template `railiance-enablement/workflows/npm-publish.yaml`. Retention documented;
docs for all enabled types; include full package tree in scheduled backups (T09). package tree included in scheduled `forgejo dump` (T09).
**Done when:** tier-2 gate is fully satisfied (✓) and tier-3 production images **Done when:** tier-2 gate is fully satisfied (✓) and tier-3 production images
follow the same pattern after explicit approval. **Tier-2 gate met; tier-3 follow the same pattern after explicit approval. **Tier-2 gate met; tier-3
@ -443,11 +450,11 @@ Acceptance:
post-restore API checks: health 200, `coulomb/glas-harness` and post-restore API checks: health 200, `coulomb/glas-harness` and
`coulomb/key-cape` on `main`, 3 org repos visible. Evidence: `coulomb/key-cape` on `main`, 3 org repos visible. Evidence:
`docs/forgejo-restore-drill-evidence.md`. Assets: `infra/forgejo-restore-drill/`, `docs/forgejo-restore-drill-evidence.md`. Assets: `infra/forgejo-restore-drill/`,
`tools/forgejo-restore-drill.sh`. **Target decided (T02 Option A).** **Tooling (2026-07-10):** `railiance-platform` `tools/forgejo-restore-drill.sh`. **Target decided (T02 Option A).** **Tooling (2026-07-07):** `railiance-platform` `tools/cmd/forgejo-backup` +
`tools/cmd/forgejo-backup` + Makefile targets (`forgejo-backup`, Makefile targets. Fixed websocket EOF on large dumps (use `kubectl cp` after
`forgejo-backup-dry-run`, `forgejo-backup-status`). Verified dump stream ~670M in-pod dump). **First scheduled-path backup:** 20260707T180844Z (~686M, 14 repos).
(13 repos). Remaining: install daily cron, 7 consecutive successes, quarterly Daily cron installed (02:15 UTC). Remaining: 7 consecutive successes (1/7),
restore drill from Nextcloud download (not `/tmp/forgejo-drill/`). quarterly restore drill from Nextcloud download (not `/tmp/forgejo-drill/`).
**Done when:** a fresh backup restores to a working isolated Forgejo instance **Done when:** a fresh backup restores to a working isolated Forgejo instance
with repository, package, and user recovery checks passing **and** scheduled with repository, package, and user recovery checks passing **and** scheduled
@ -496,12 +503,16 @@ tier 2.5 section.
rewire, sweep checkout migration on railiance01); phase 5 stabilization window rewire, sweep checkout migration on railiance01); phase 5 stabilization window
open through 2026-07-09. Evidence: open through 2026-07-09. Evidence:
`the-custodian/docs/state-hub-railiance01-cutover-phase{1,2,4,5}-2026-07-06.md`. `the-custodian/docs/state-hub-railiance01-cutover-phase{1,2,4,5}-2026-07-06.md`.
Forgejo also hosts `issue-core`, `activity-core`, `hub-core`, `core-hub` (13 Forgejo also hosts `issue-core`, `activity-core`, `hub-core`, `core-hub`,
org repos total as of 2026-07-07). `ops-warden` (14 org repos as of 2026-07-07).
**Hub drift (2026-07-08):** tier-2.5 `remote_url` patched for 6 registered repos
(`patch-forgejo-remote-urls.sh --tier-25`). Hub: 11 Forgejo / 52 Gitea remotes.
`ops-warden` tier-3 on Forgejo — hub patch deferred pending operator approval.
**Remaining:** tier-3 promotion for remaining production repos; scheduled **Remaining:** tier-3 promotion for remaining production repos; scheduled
backups gate still open (disaster-control); stabilization closeout + operator backups 7-day gate (1/7); stabilization closeout + operator signoff before
signoff before coulombcore teardown. coulombcore teardown.
**Done when:** tiers 02 pass with written result matrices and no unknown **Done when:** tiers 02 pass with written result matrices and no unknown
critical migration gaps remain for production repos. **Tiers 02.5: met.** critical migration gaps remain for production repos. **Tiers 02.5: met.**
@ -583,14 +594,12 @@ T05+T08 ──► T10 migration ladder ──► T11 production cutover ──
T03 isolated probe: CANCELLED (superseded by T05 + in-production pilots) T03 isolated probe: CANCELLED (superseded by T05 + in-production pilots)
``` ```
**Current focus (2026-07-07):** T08 **done**; T10 tiers 02.5 **complete**, tier-3 **Current focus (2026-07-08):** T05/T06/T07/T08 **done**; T10 tiers 02.5 **complete**
`state-hub` cutover **in progress** (phase 5 stabilization). T09 restore drill (tier-2.5 hub `remote_url` patched). Tier-3 `state-hub` stabilization; backup
**passed**; backup target decided (Option A); T02 **done** (all design decisions). 7-day gate **1/7**. Next: backup gate completion, Nextcloud restore drill (T09),
Scheduled backup automation still open (T04/T09). Next: tier-3 staged promotions tier-3 promotions with operator approval (T10/T11). `ops-warden` hub patch
(T10/T11) after backup 7-day gate. T11 partial: `state-hub` primary pending approval. Do not retire coulombcore `state-hub` until phase 5 closeout
on railiance01; ~57 State Hub repos still point at Gitea remotes. (`CUST-WP-0054-T05`).
Do not retire coulombcore `state-hub` until phase 5 closeout and operator
signoff (`CUST-WP-0054-T05`).
**Absorbed by `CUST-WP-0054-T04`:** forge + CI on railiance01; workstation **Absorbed by `CUST-WP-0054-T04`:** forge + CI on railiance01; workstation
build retirement; staged repo promotion before State Hub primary move (T05). build retirement; staged repo promotion before State Hub primary move (T05).