Skip to content

nebari-rayserve-pack-0.3.0

Choose a tag to compare

@oren-openteams oren-openteams released this 01 May 12:18
· 40 commits to main since this release
5456c40

What's new

Worker pods now reach Ready on a fresh install

Previously, KubeRay's default worker readiness/liveness probe chained raylet healthz with wget http://localhost:8000/-/healthz | grep success. The Serve check requires both a deployed Serve application and a local Serve HTTP proxy — neither of which holds on a fresh chart install. Worker pods would stay 0/1 Ready indefinitely with the confusing message Readiness probe failed: success.

This release overrides KubeRay's default worker probes with raylet-only checks. Kubernetes pod readiness now reflects whether the Ray node itself is healthy; Serve application health is tracked separately by the Serve controller and no longer gates K8s readiness.

New configurable values

  • serve.proxyLocation (default EveryNode) — controls where Ray Serve runs HTTP proxies. EveryNode places a proxy on every Ray pod, which matches typical KubeRay usage.
  • worker.readinessProbe, worker.livenessProbe — exposed for tuning. Defaults to a raylet-only check; set to ~ (null) to fall back to KubeRay defaults.
  • head.readinessProbe, head.livenessProbe — exposed for symmetry. Defaults to {} so KubeRay defaults apply unchanged.

Test coverage

The standalone integration test now installs with worker.replicas=1 and waits for the worker pod to reach Ready. Previously the test ran with replicas=0, which couldn't catch worker-side regressions.

References

  • Issue: #7 — full diagnosis of the readiness-probe failure
  • PR: #8 — implementation

Upgrade notes

For consumers pinning to a specific tag (e.g., ArgoCD targetRevision), update from nebari-rayserve-pack-0.1.0-alpha.1 to nebari-rayserve-pack-0.3.0.

If you were using the manual workaround of running serve.shutdown(); serve.start(proxy_location='EveryNode'); serve.run(...) to make workers Ready, that's no longer required — a fresh deploy of this chart will produce a healthy cluster without any Serve apps deployed.