Check readiness
Returns 200 when the orchestrator can serve traffic, 503 otherwise. Checks the state store with a bounded ListVMs call (default 2s timeout) and verifies the FleetManager is initialized. The 503 body includes a per-check breakdown so operators can see which dependency is unhealthy. Mounted outside auth — k8s readinessProbe does not carry credentials.
Failure messages are clipped to the first 200 bytes, with the
literal marker …(truncated) appended — so a truncated check
value is 214 bytes, not 200. Truncation keeps driver errors
and stack traces from blowing out the probe body. Use this endpoint
— not /health — for a load balancer’s routing decision;
/health only reports that the process is up, not that it can
serve a request end to end.
When restate is configured (FUSE_RESTATE_MODE is not off), a
restate check reports whether restate ingress answers. Restate
being down is degraded with a 200, not a 503: nothing runs on
restate yet, so it must not take the orchestrator out of rotation.
/readystatusstringrequiredreadydegradedchecksobjectrequiredstatusstringrequirednot_readychecksobjectrequiredcurl -X GET "http://localhost:8080/ready"const response = await fetch("http://localhost:8080/ready", {
method: "GET"
});import requests
response = requests.get(
"http://localhost:8080/ready",
){
"status": "ready",
"checks": {
"state_store": "ok",
"fleet": "ok",
"restate": "ok"
}
}{
"status": "not_ready",
"checks": {
"state_store": "connection refused",
"fleet": "ok"
}
}