Make Forgejo runner scratch classification and recycle busy-aware #650
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#650
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?
Finding
On 2026-07-25,
kai-serverroot pressure reached 83.25% with 80.3 GiB available. The bounded node and PVC views showed Forgejo-related storage but did not expose the acute owner because general-runner Docker scratch lives inemptyDir, not a PVC.The guarded kubelet stats summary established the missing split:
docker-libemptyDir scratch only 13 hours after the last successful recycle.agentic-ospublish, so restarting the full existing recycle target set would have interrupted live work.The operator verified all four general runners idle through their task and cleanup logs, then restarted only
statefulset/forgejo-runner. The four replacement pods returned2/2 Running. Available root space rose from 80.3 GiB to 123.5 GiB and pressure fell from 83.25% to 74.25%, reclaiming about 43.2 GiB. The operator left the active image-build runner and every durable data surface untouched.Learning
emptyDiruse.Work
docker-libuse from kubelet stats, aggregated separately for general, image-build, and deploy runners.Acceptance
statefulset/forgejo-runner, waits for all four pods to become Ready, and records reclaimed bytes.Related
coilyco-bridge/deploy#196