Auto-rotate the deploy Forgejo runner registration token #510
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/infrastructure#510
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The
forgejo-runner-deployStatefulSet persists/data/.runneron its PVC. That means deleting the pod does not necessarily rotate the runner's auth token. Manual rotation is available, but the deploy runner is high-impact because it carries thedeploy:hostlabel and runs with cluster deploy access.Desired behavior
Add automatic bounded rotation for the deploy runner registration:
/data/.runnerindeploy/forgejo-runner-deploy.yml.deploy:hostlabel.Context
This follows infrastructure#357. That issue covered a one-time exposed
.runnertoken forforgejo-runner-deploy-0; this issue is the structural follow-up so future runner auth tokens do not live indefinitely on the PVC.WARD-RESERVATION: held 🔒
reservation details
Holder: container
engineer-codex-infrastructure-510on hostkais-macbook-pro-2.local.Reserved by
ward agent --harness codex(reserved 2026-07-09T22:00:11Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (1h TTL).--forceoverrides.Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).
run seed context — what this run is carrying (ward#609)
coilyco-flight-deck/infrastructure#510· branchissue-510· harnesscodex· workflowdirect-to-mainengineer-codex-infrastructure-510· wardv0.493.0· dispatched2026-07-09T22:00:11ZStatic container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.493.0).
— Codex, via
ward agentWARD-OUTCOME: done ✅
details
workflow: direct-to-main; review summary: review gate skipped by
~/.ward/config.yamldefaultImplemented bounded rotation for
deploy/forgejo-runner-deploy.ymlso the deploy runner keeps persistent registration across normal restarts, but drops stale/data/.runnerafter 30 days and re-mints the token on the next start. The docs now say that explicitly.It felt straightforward in the manifest and slightly noisy in the merge path because
mainmoved while the run was in flight.Confidence: high.
Surprises: the container ran out of disk for
pre-commitand the merge hook could not write to/opt/uv, so validation had to fall back togit diff --checkplussh -non the init script.Follow-ups: none.