Skip to content

fix(net): honor kube-proxy JSON health - #669

Open
Patrick W. Healy (phealy) wants to merge 1 commit into
mainfrom
phealy/kube-proxy
Open

fix(net): honor kube-proxy JSON health#669
Patrick W. Healy (phealy) wants to merge 1 commit into
mainfrom
phealy/kube-proxy

Conversation

@phealy

@phealy Patrick W. Healy (phealy) commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • parse kube-proxy /healthz JSON instead of relying solely on HTTP status
  • treat healthy: true as healthy when node eligibility causes HTTP 503
  • retain warnings for unhealthy, malformed, and unreachable responses

Problem

Unbounded-managed nodes carry the node.kubernetes.io/exclude-from-external-load-balancers=true label. kube-proxy intentionally reports these nodes as nodeEligible:false, so its /healthz endpoint returns HTTP 503 even while the response body reports healthy:true and both IPv4 and IPv6 proxy synchronization are healthy.

The node monitor currently interprets every non-200 response as a kube-proxy failure. That warning is included in the node status sent to the controller, causing the controller and dashboard to report a false kube-proxy error for otherwise healthy excluded nodes.

Fix

The monitor now parses the kube-proxy health JSON and uses its healthy field as the authoritative proxy-health signal. A 503 response with healthy:true no longer creates a warning, while healthy:false, malformed responses, and unreachable endpoints continue to surface errors.

Testing

  • go test ./cmd/unbounded-net-node -run '^TestKubeProxyMonitor' -count=1

Treat kube-proxy as healthy when its healthz response reports healthy=true, even when node eligibility causes an HTTP 503 response.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: b9438d58-c090-4125-b54f-64a77ce9fdac
@phealy
Patrick W. Healy (phealy) requested a review from a team August 26, 2026 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants