Skip to content

Probe 0.9 proxies on their admin listener (v0.3.1) - #17

Merged
austin-barrington merged 1 commit into
mainfrom
fix/proxy-admin-listener
Oct 17, 2026
Merged

austin-barrington merged 1 commit into
mainfrom
fix/proxy-admin-listener

Conversation

@austin-barrington

Copy link
Copy Markdown
Member

Bug: from 0.9.0-beta the proxy serves /healthz, /readyz, /metrics and /admin only on its admin listener (port 8087) and returns 404 for them on the client port. The operator probed the client port, so a 0.9.1-beta proxy restarted forever and never became ready, and every request through it got 502 "database unavailable" (shared-pool-1 on n3). The bug is in v0.3.0 and main. Nothing caught it because UAT and e2e run without the proxy, and default still runs proxy 0.8.5.

Fix:

  • New proxy-admin-listener capability (proxy 0.9.0-beta and later). The proxy's version is its image tag, or the cluster's version when the image has no version tag.
  • For those proxies the operator sets HYPERBYTEDB_PROXY_ADMIN_LISTEN explicitly (8087, or 8088 if the client port is 8087), adds an admin container port, and points both probes at it.
  • The rolling-restart exclude/include calls use the same admin port. For older proxies they now use the proxy's own port, not the database's.
  • A 0.8.x proxy renders exactly as before, so it doesn't restart.
  • The admin port is not added to the proxy Service.
  • Chart and README bumped to 0.3.1; docs/compatibility.md has the new row and an upgrade note.

Tests:

  • New proxy_test.go: probes and env for 0.9.1 and 0.8.5, version from the proxy's own image tag, admin port selection, Service ports.
  • With the probes put back on the client port, the 0.9.1 test fails.
  • go test, go vet and make lint (0 issues) pass.
  • Checked against the published images: 0.9.1-beta answers 404 on the client port and 200 / 503 / 200 for /healthz, /readyz and /admin/backends on 8087. 0.8.5-beta answers on its client port.

From 0.9.0-beta the proxy serves /healthz, /readyz, /metrics and /admin
only on its admin listener (HYPERBYTEDB_PROXY_ADMIN_LISTEN, 8087) and
answers 404 for them on the client port. The operator probed the client
port, so a 0.9.1-beta proxy (shared-pool-1 on n3) restarted forever,
never became ready, and every request through it failed with 502.

The proxy's version is its image tag, else the cluster's version. For
0.9.0-beta and later the operator sets the admin listener explicitly
(8087, or 8088 when the client port is 8087), adds an admin container
port and probes it; a 0.8.x proxy renders as before. Rolling-restart
exclude/include calls go to the same admin port, and for older proxies
to the proxy's own port rather than the database's. The admin port is
not on the proxy Service. Chart 0.3.1.
@austin-barrington
austin-barrington merged commit 28d6946 into main Oct 17, 2026
4 checks passed
@austin-barrington
austin-barrington deleted the fix/proxy-admin-listener branch October 17, 2026 21:56
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.

1 participant