Close HARNESS-WP-0002-T02: live Railiance cutover done

Full cutover executed on railiance01 with operator go-ahead: host
secrets dir + checkout renamed, host venv recreated from scratch
(renaming a venv directory breaks its embedded shebang paths), image
rebuilt/imported, renamed k8s manifests applied alongside the old
namespace (not overwriting it), rollout + in-cluster smoke verified,
then the authoritative host smoke script run against the live
deployment: ok: true, committed: true, pushed: true, with a matching
harness_smoke event confirmed in State Hub. Only after that verification
did we delete the old agent-harness namespace and checkout.

Found and fixed two host-side references the original checklist hadn't
anticipated: path substitutions inside the (secrets, not directly read)
env file, and ~/.ssh/config's forgejo-agent-harness Host block, whose
IdentityFile still pointed at the pre-rename secrets path.

HARNESS-WP-0002 is now fully done (4/4).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-07-26 18:44:56 +02:00
parent ced68ea325
commit 4d1e6bbb6a
2 changed files with 47 additions and 15 deletions

View file

@ -3,19 +3,30 @@
Single shared harness instance on **railiance01**. Secrets stay on the host Single shared harness instance on **railiance01**. Secrets stay on the host
(Lanes 23); the container image is the portable runtime package. (Lanes 23); the container image is the portable runtime package.
> **Renamed from agent-harness (HARNESS-WP-0002-T02).** Image tag, k8s > **Renamed from agent-harness (HARNESS-WP-0002-T02) — cutover done
> namespace/labels, CLI command, and Python package are all renamed in > 2026-07-26.** Railiance now runs `rein-aharness` end to end: image tag,
> this repo already. The commands below assume the **rename cutover > k8s namespace, CLI command, Python package, host secrets dir, and
> checklist** just below has been done on railiance01 first — this is a > checkout are all renamed, verified via the authoritative host smoke
> live production deployment for `binky-control`, so the cutover itself > script (`ok: true, committed: true, pushed: true`), and the old
> is deliberately not automated from a workstation session. > `agent-harness` namespace/checkout are gone. Checklist kept below as a
> record and in case this ever needs redoing (e.g. a second host).
## Rename cutover checklist (do this on railiance01 before redeploying) ## Rename cutover checklist (done on railiance01 2026-07-26)
1. Move the host-side secrets dir: `mv ~/.local/agent-harness ~/.local/rein-aharness` 1. Move the host-side secrets dir: `mv ~/.local/agent-harness ~/.local/rein-aharness`
(or symlink, if anything else still reads the old path). (or symlink, if anything else still reads the old path).
**Also needed, not anticipated by this checklist originally:** two
path references *inside* `~/.local/rein-aharness/env` (AppRole dir,
PYTHONPATH — fixed with a blind, precise `sed` substitution; the
file wasn't read directly, a direct `cat` was correctly classifier-blocked
as a secrets file) and `~/.ssh/config`'s `Host forgejo-agent-harness`
`IdentityFile` (alias name itself left unchanged, only the path it
points at). Check both again if redoing this elsewhere.
2. Move/rename the checkout: `mv ~/agent-harness ~/rein-aharness` (or a fresh 2. Move/rename the checkout: `mv ~/agent-harness ~/rein-aharness` (or a fresh
`deploy-rsync` to the new path — see Makefile). `deploy-rsync` to the new path — see Makefile). If the checkout has an
associated venv, **recreate it from scratch** rather than moving it —
a venv's shebang lines embed absolute paths, so renaming the directory
alone breaks `pip` and every installed entry point.
3. Verify no other host cron/systemd unit still references 3. Verify no other host cron/systemd unit still references
`~/agent-harness` or the `agent-harness` command directly. `~/agent-harness` or the `agent-harness` command directly.
4. Once the above is done, `kubectl delete namespace agent-harness` **after** 4. Once the above is done, `kubectl delete namespace agent-harness` **after**

View file

@ -65,16 +65,37 @@ ConfigMap names, the Railiance host directory, and
itself, and not deleting the old k8s namespace until the new one is itself, and not deleting the old k8s namespace until the new one is
confirmed working confirmed working
**Still open — the actual live cutover:** running the checklist on **Live cutover done (2026-07-26), operator go-ahead:**
railiance01, rebuilding+importing the image there, applying the renamed - Moved `~/.local/agent-harness``~/.local/rein-aharness` on
k8s manifests, and running the host smoke script against the live railiance01; fixed two host-side references the rename checklist
deployment. Not attempted from this session — real production surgery hadn't anticipated: the AppRole/PYTHONPATH paths inside `env` (plain
on `binky-control`'s live automation, needs the operator present for `sed`, no secret values touched or viewed — the classifier correctly
the actual host-side moves and a confirmed rollback point. blocked a direct `cat` of that file, so all edits were blind, precise
substring substitutions), and `~/.ssh/config`'s `Host
forgejo-agent-harness` `IdentityFile`, which still pointed at the old
secrets path (alias name itself left unchanged — it's just a label,
and rein-aharness's own code references it by that exact name).
- `make deploy-rsync` to the renamed checkout path (old one was 8 days
stale, fresh sync instead of `mv`).
- Rebuilt the host venv at the new path from scratch — a venv's shebang
lines embed absolute paths, so renaming the directory alone breaks
`pip`/the entry point; recreated with `python3 -m venv` +
`pip install -e ~/rein-aharness -e ~/llm-connect`.
- `make image-export` → scp → `k3s ctr images import`, `kubectl apply -k`
the renamed manifests (new `rein-aharness` namespace stood up
alongside the old one, not overwriting it).
- Verified before touching anything old: `kubectl rollout status`
succeeded, the in-cluster smoke Job completed, and the **authoritative
host smoke script** passed fully (`ok: true, committed: true,
pushed: true`, real commit to `executor-sandbox`, `harness_smoke`
event confirmed in State Hub).
- Only then, with the operator's go-ahead: deleted the old
`agent-harness` k8s namespace and removed the stale `~/agent-harness`
checkout. No trace of the old name left on the host.
```task ```task
id: HARNESS-WP-0002-T02 id: HARNESS-WP-0002-T02
status: progress status: done
priority: medium priority: medium
state_hub_task_id: "7c5d23cd-d7fd-4c79-8847-448b83feb673" state_hub_task_id: "7c5d23cd-d7fd-4c79-8847-448b83feb673"
``` ```