fix: make the Forgejo runner recycle CronJob executable #587
Labels
No labels
burndown-2026-06
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#587
Loading…
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 daily Forgejo runner recycle CronJob uses
rancher/kubectl:v1.31.4with a/bin/sh -ccommand, but that image does not contain/bin/sh. Every observed Job terminates withStartErrorbefore the Job restarts any runner StatefulSet.The failed recycle path leaves general-runner scratch on the node until eviction or another restart removes it. During the 2026-07-22 DiskPressure incident, free rootfs fell from about 75 GiB to 62 GiB after the four general runners recovered.
Scope
Acceptance
StartErrorpods.Related to #560.
WARD-WORKFLOW: done ✅
details
workflow: merge-remote-main; review summary: skipped
The in-container review gate was intentionally skipped because implementation and QA are role-separated. QA is a separate, opt-in exact-commit verification role bound to
59acdd65ee8cb22e9b801ed4a0f6b4d99069b8f2.Landed
d1216d5throughmain; lint and trufflehog passed. Felt: crisp once current scoped topology replaced stale global assumptions. Confidence: high. Surprise: the earlier shell-free patch was neither Flux-owned nor current-targeted. Follow-up: interactive #689 owns manual and next-schedule live evidence.WARD-WORKFLOW: reservation-released
release details
Run finished with
WARD-WORKFLOW: done ✅.ward container reapreleased containerengineer-codex-infrastructure-587(--harness codex): the terminal outcome supersedes the reservation, so a later redispatch no longer needs--override-reservation.— Codex, via
ward agent