Commit 10abdff
committed
fix(zookeeper): add publishNotReadyAddresses to headless service
The headless service governing the ZK StatefulSet was missing
publishNotReadyAddresses: true. With K8s 1.22+ EndpointSlice handling
(strict in 1.33+ where the legacy Endpoints API is deprecated),
CoreDNS withholds DNS records for pods whose readiness probe has not
yet passed.
For a StatefulSet that needs sibling DNS to bootstrap a quorum (as ZK
does), this creates a chicken-and-egg deadlock:
zk-0 starts -> looks up DNS for zk-1, zk-2 -> NXDOMAIN
-> can't form quorum -> not Ready -> own DNS not published
-> same for zk-1 and zk-2 -> cluster never forms.
Symptoms in CI logs:
WARN [WorkerSender] Failed to resolve address:
zookeeper-1.zookeeper.<ns>.svc.cluster.local
java.net.UnknownHostException
Reproduced locally on a kind v0.30.0 / k8s 1.34 cluster; verified
patching the live service with publishNotReadyAddresses fixed it.
This bug went unnoticed for years because pre-K8s-1.22 CoreDNS was
lenient about the legacy Endpoints API's notReadyAddresses path.
The lint-test-fid CI started failing in April 2026 when
helm/kind-action@v1 (a floating tag) rolled forward to a release
using kindest/node:v1.35.0, which strictly enforces the readiness
condition on EndpointSlice entries.
Bumps zookeeper chart version 0.1.6 -> 0.1.7. No app changes.1 parent 36c17ab commit 10abdff
2 files changed
Lines changed: 6 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
11 | 16 | | |
12 | 17 | | |
13 | 18 | | |
| |||
0 commit comments