From a3d980c8c6815dbf40c0b3a06bba1028e3ba081c Mon Sep 17 00:00:00 2001 From: tegwick Date: Thu, 4 Jun 2026 08:26:19 +0200 Subject: [PATCH] chore: sync railiance deployment workplan tasks Adds explicit task blocks and State Hub task IDs for IHUB-WP-0018 so WSJF triage no longer treats the active deployment workplan as empty or close-out-ready. --- .../IHUB-WP-0018-railiance01-deployment.md | 65 ++++++++++++++++++- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/workplans/IHUB-WP-0018-railiance01-deployment.md b/workplans/IHUB-WP-0018-railiance01-deployment.md index 12b17b1..3259c1c 100644 --- a/workplans/IHUB-WP-0018-railiance01-deployment.md +++ b/workplans/IHUB-WP-0018-railiance01-deployment.md @@ -4,11 +4,11 @@ type: workplan title: "Railiance01 Deployment — Production Operations Scaffold" domain: inter_hub repo: inter-hub -status: open +status: active owner: custodian topic_slug: inter_hub created: "2026-04-29" -updated: "2026-04-29" +updated: "2026-06-04" depends_on: IHUB-WP-0015 state_hub_workstream_id: "080d841a-3acd-4adf-b684-2d1890a5e986" --- @@ -61,10 +61,23 @@ git push → Gitea Actions → PostgreSQL: database 'interhub' on railiance-platform HA cluster ``` +## Close-out Audit - 2026-06-04 + +WSJF triage flagged this workplan as a close-out candidate because State Hub had +no indexed task rows for it. The deployment work is not complete; this file now +contains explicit task blocks so the hub can track the remaining Railiance01 +deployment work instead of treating the workplan as empty. + ## Tasks ### R1 — Add OCI image build to flake.nix +```task +id: IHUB-WP-0018-T01 +status: todo +priority: high +state_hub_task_id: "27420bd7-0f70-4793-8805-393d8d5cacfd" +``` Add a `packages.docker` output to `flake.nix` using `pkgs.dockerTools.buildLayeredImage`. The image wraps the IHP production binary produced by `nix build .#default`. @@ -97,6 +110,12 @@ machine with the Nix store populated for GHC 9.10.3. ### R2 — Verify container runs correctly +```task +id: IHUB-WP-0018-T02 +status: todo +priority: high +state_hub_task_id: "5ab45e4e-16bc-4feb-8b1b-e8eeb05bf39a" +``` On haskelseed, run the container image against the existing `interhub` database. Confirm: - `curl http://localhost:8000/` returns 200 (LandingAction) @@ -110,6 +129,12 @@ image via `dockerTools.buildLayeredImage` `contents` or a NixOS module. ### R3 — Verify Railiance01 readiness (gate) +```task +id: IHUB-WP-0018-T03 +status: blocked +priority: high +state_hub_task_id: "79b5cf2c-3a5b-4b4b-8f84-f635cb6891c1" +``` This is a dependency gate. Before proceeding, confirm: ```bash @@ -129,6 +154,12 @@ Do not proceed until all checks pass. ### R4 — Provision inter-hub database on railiance-platform +```task +id: IHUB-WP-0018-T04 +status: blocked +priority: high +state_hub_task_id: "c937cf36-3850-4ab3-aa83-2d846e1a378e" +``` On the PostgreSQL HA cluster, create the inter-hub database and user: ```sql @@ -143,6 +174,12 @@ migration procedure in `deploy/railiance/RUNBOOK.md`. ### R5 — SOPS-encrypted secrets +```task +id: IHUB-WP-0018-T05 +status: blocked +priority: high +state_hub_task_id: "926f82d1-15cd-425d-8a41-3d6b51c07f0b" +``` Create `deploy/railiance/secrets/inter-hub.env.sops.yaml` with: ```yaml @@ -163,6 +200,12 @@ using the age key from a Kubernetes Secret (bootstrapped once manually). ### R6 — Helm chart in railiance-apps +```task +id: IHUB-WP-0018-T06 +status: blocked +priority: high +state_hub_task_id: "4c4acc98-5773-4289-ad57-03f3fd5c381c" +``` Create `helm/inter-hub/` in the `railiance-apps` repository following the Railiance app.toml contract. Minimal chart: @@ -193,6 +236,12 @@ namespace = "inter-hub" ### R7 — Gitea Actions CI/CD pipeline +```task +id: IHUB-WP-0018-T07 +status: blocked +priority: medium +state_hub_task_id: "ec25c67c-3cb0-4534-9fb0-9bd6578a2def" +``` Create `.gitea/workflows/deploy.yaml` in the inter-hub repo: ```yaml @@ -230,6 +279,12 @@ deploy step directly without the SSH hop to coulombcore. ### R8 — Staged deployment and smoke test +```task +id: IHUB-WP-0018-T08 +status: blocked +priority: high +state_hub_task_id: "2b02ae5c-47b9-4f09-88f0-a4af7900b38f" +``` Follow the Railiance staged promotion lifecycle: 1. **Local verify** (done in R2 — container runs correctly) @@ -254,6 +309,12 @@ Follow the Railiance staged promotion lifecycle: ### R9 — Document and register +```task +id: IHUB-WP-0018-T09 +status: blocked +priority: medium +state_hub_task_id: "4d1e55c7-8dbb-480f-b07b-6c5e39a04218" +``` - Write `deploy/railiance/RUNBOOK.md`: image build, migration procedure, secret rotation, rollback (`railiance rollback inter-hub`), log access (`kubectl logs -n inter-hub -l app=inter-hub --tail=100`)