forgejo CI outage: runner local-path PVCs stranded on dead WSL node (fixed + prevention) #304
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#304
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?
Summary
Forgejo CI was fully down for ~6 days (no runners able to schedule). Root cause: the
forgejo-runnerStatefulSet'slocal-pathPVCs (data-forgejo-runner-0,data-forgejo-runner-1) were provisioned onkai-desktop-tower-wsland pinned there viakubernetes.io/hostnamenode affinity. That node wentNotReady/unreachable (andkai-macbook-pro-vmwas cordoned), leaving onlykai-serverReady.kai-serverthen rejectedforgejo-runner-0withvolume node affinity conflict, and StatefulSet ordering meantforgejo-runner-1never started. Net: 0/2 runners, every Actions job queued forever. 1,533FailedSchedulingevents over 5d7h.Fix applied (2026-06-12)
forgejo-runnerto 0, deleted the stranded PVCs (PVs cascaded,reclaimPolicy=Delete), scaled back to 2 → local-path re-provisioned onkai-server. Both runners now2/2 Runningand registered (labels[docker], v12.10.1); backlog draining.kai-desktop-tower-wslandkai-macbook-pro-vm. Cluster is single-nodekai-serveragain.Prevention (the real meta-fix)
Ephemeral WSL/VM nodes must not be allowed to host durable workloads on this single-node cluster, or local-path will strand them again the moment the node drops off. Options:
NoScheduleon join so local-path never provisions a durable PV there, orkai-serverwith a nodeSelector / required node affinity.Document the trap and chosen guard in
docs/k3s-deploy-notes.md§7.