The drainer binary (cmd/drainer) exposes NO health endpoint (no http.Server//healthz), so no chart livenessProbe is possible today.
A wedged single-replica drainer pauses metering — but this is recoverable, not loss: Postgres is the system-of-record, the Valkey stream persists, and a restart re-consumes at-least-once (the drainer reads the stream from its last position). So a wedge is metering LAG, not LOSS. But a wedged drainer does not self-heal, and lag accrues silently until someone notices.
Add a health endpoint to the drainer (reflecting real consumer health — connected to Valkey, making progress / not stuck on a single XREAD), then a chart livenessProbe pointed at it so the kubelet restarts a wedged consumer.
Tracked follow-up from the phoebe Helm chart review (saturn-k8s PR #981); Ben-ruled a follow-up, not a chart blocker.
The drainer binary (
cmd/drainer) exposes NO health endpoint (nohttp.Server//healthz), so no chartlivenessProbeis possible today.A wedged single-replica drainer pauses metering — but this is recoverable, not loss: Postgres is the system-of-record, the Valkey stream persists, and a restart re-consumes at-least-once (the drainer reads the stream from its last position). So a wedge is metering LAG, not LOSS. But a wedged drainer does not self-heal, and lag accrues silently until someone notices.
Add a health endpoint to the drainer (reflecting real consumer health — connected to Valkey, making progress / not stuck on a single XREAD), then a chart
livenessProbepointed at it so the kubelet restarts a wedged consumer.Tracked follow-up from the phoebe Helm chart review (saturn-k8s PR #981); Ben-ruled a follow-up, not a chart blocker.