Migration 0010 was applied (WP-0038 columns, first production deployment of WP-0038), and the API was redeployed on activity-core:wp0039-20260923. The loop claims with 200. The metered token authenticates as rein-aharness-metered@railiance01, and paired with the loop identity it is rejected with 403. The manifest declares the live API image. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 151606@bnt-lap001 Assistant-Session: 3c0a4ad5-bb8b-4bf7-b9f0-fa5f29204e48
2.7 KiB
2.7 KiB
ACTIVITY-WP-0039: multi-worker identity cutover (2026-09-23/24)
Founder go-ahead, build mode. No token value was printed, logged, or committed.
Custody
- railiance-platform T06 retired the static ESO token path. The
openbao-activity-corestore uses Kubernetes auth (RPF-WP-0045). - T03: the founder ran an attended mint of both worker tokens, option (b)
(fresh values), with
scripts/wp0039-seed-worker-tokens.sh:platform/workloads/activity-core/ops-run-workers/rein-aharness-railiance01and.../rein-aharness-metered-railiance01, fieldtoken. - T02: railiance-platform granted exact-path read to
workload-kv-read-activity-core-eso, applied at 2026-09-23T18:06:29Z (CCR-2026-0029/0030, railiance-platformfe1665d). - ExternalSecret
actcore-ops-run-worker-tokenssynced both keys at 2026-09-23T20:35:35Z. ESO now ownsACTIVITY_CORE_WORKER_TOKENandACTIVITY_CORE_WORKER_TOKEN_METEREDin the activity-core runtime Secret.
Rollout
- With 0 claimed runs, the claim-loop env file was backed up
(
claim-loop.env.bak-wp0039-20260923T203559) and given the new loop token inside a remote process, never printed. - First API rollout at 20:38Z on
activity-core:wp0039-20260923(main1a20c85): HTTP 500,column ops_runs.repository_grant does not exist. Production was at alembic0009, and main needs0010(WP-0038, never deployed before). The runningfi-publication-20260914image contained no WP-0038 code. The API was rolled back, and the loop claimed again with HTTP 200 at 20:39:23Z. The outage lasted about 1 minute, and no run was affected. - On 2026-09-24 the founder ran the one-off Job
actcore-migrate-wp0039(alembic upgrade head, new image), giving0009 -> 0010, with 0 runs claimed. The old API kept claiming with 200 against the new schema. - The API was redeployed on
activity-core:wp0039-20260923at 05:24:18Z.kubectl diffshowed the image line only. The ConfigMap carriesACTIVITY_CORE_WORKERS. The worker and event router remain onfi-publication-20260914.
Proof (2026-09-24)
- The claim loop keeps polling
POST /ops-runs/claimwith HTTP 200 asrein-aharness@railiance01through the new API (05:24:40Z), with no loop restart needed. - The founder ran this. With the metered token and body
rein-aharness-metered@railiance01on labelwp0039-proof-no-match, the response was HTTP 200{"items":[],"lease_seconds":900}and nothing was claimed. - With the same token and body
rein-aharness@railiance01, the response was HTTP 403worker_id does not match authenticated worker.
Side effect: WP-0038 is now live
This rollout is the first production deployment of the ACTIVITY-WP-0038 repository-grant carriage and exact terminal close reconciliation.