Flux apps Kustomization: one dead disposable runner fails the health gate for the entire app layer #836
Labels
No labels
burndown-2026-06
burndown-2026-08
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/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#836
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?
Summary
A single crashlooping runner StatefulSet holds the whole
appsFlux Kustomization atReady=False. Disposable CI runners are the most failure-prone objects in that inventory, and gating the entire app layer on their health means any one of them going bad silently degrades GitOps reporting for everything else.Evidence
Conditions on
kustomization/appsinflux-system:Ready=False, reasonHealthCheckFailedHealthy=False, reasonHealthCheckFailedReconciling=True, reasonProgressingWithRetryobservedGeneration: 8spec.healthChecksnames six runner StatefulSets explicitly (forgejo-runner-flight-deck,forgejo-runner-bridge,forgejo-runner-gaming,forgejo-runner-build-flight-deck,forgejo-runner-deploy-scoped,forgejo-runner-tap-writer-scoped).forgejo-runner-deploy-atlasis not in that list, so the failure is coming from whole-inventory health checking rather than the named set.Not a resource problem
Worth recording so nobody chases it: the retry loop is cheap.
interval: 10m, and the controllers are idle.The cost is lost signal, not lost capacity. A permanently red
appsKustomization means a genuinely broken app deploy would not stand out.Options to consider
spec.healthChecksset instead of the full inventoryAcceptance
A single crashlooping disposable runner no longer flips the app-layer Kustomization to
Ready=False, and runner health is still visible somewhere.Resolved. Closing.
Verified against live state 2026-08-28:
The
appsKustomization isREADY=Trueand applying cleanly, so the dead disposable runner no longer fails the health gate for the app layer.Not verified: which specific change cleared it. The runner in question is gone rather than fixed, so this may have resolved as a side effect of runner churn rather than deliberately. If the same shape recurs, the underlying complaint stands, that one disposable pod can gate an entire layer's health, and that is worth its own issue rather than reopening this one.
Related and still open: #837, where
infrastructureandbridge-deployremain suspended.