Hanzo Dev 62864bdba8 fix(zoo-operator): pin 0.1.4 — readiness is process health, not leadership
zoo-system/zoo-operator sat 0/1 for two days. The probe was not wrong:
path /readyz and port 8081 both match the server main.rs binds. The
endpoint itself was.

Two faults compounded.

1. 0.1.3's /readyz returned 503 for any replica that did not hold the
   lease. Readiness answers "can this pod serve?"; leadership answers
   "who reconciles?". Braiding them means a healthy standby is NotReady
   forever, so the Deployment never goes available. Measured on the live
   pod before the fix — /healthz=200 while /readyz=503, process fine.

2. Something else was holding zoo-system's lease. A stale zoo-testnet
   replica, floating on :main with no OPERATOR_NAMESPACE, had survived
   since the last apply of this file. main.rs falls back to the literal
   "zoo-system" when that env is unset, so it wrote zoo-system's lease
   from zoo-testnet and renewed it indefinitely. git has said replicas: 0
   for that overlay all along (zoo-testnet/network-patch.yaml) — the
   cluster had simply drifted, and the floating tag hid it.

So: pin the immutable semver, and record that the fieldRef and the
scale-to-0 overlays are load-bearing invariants rather than tidiness.
0.1.4 (zooai/operator 98be7d7) carries the /readyz change.

This file still tracked :main because the 0.1.3 pin was only ever made on
a feature branch; trunk kept floating and would have reverted the cluster
on the next clean apply.

Proof, zoo-system after rollout — two replicas, one leader, both Ready,
which 0.1.3 could not do by construction:

  NAME           READY   UP-TO-DATE   AVAILABLE
  zoo-operator   2/2     2            2

  lease holder = zoo-operator-7dd698654-t6v4q   (10.160.16.31)
  10.160.17.253  /readyz=200  /healthz=200      <- NOT the leader
  10.160.16.31   /readyz=200  /healthz=200

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 22:38:13 -07:00
2026-06-28 20:58:44 -07:00
2026-07-26 10:16:32 -07:00
2026-06-10 18:23:14 -07:00
2026-07-26 10:16:32 -07:00
2026-02-14 05:27:03 -08:00
2026-03-26 22:45:36 -07:00
2026-06-28 20:58:45 -07:00
2026-03-26 22:45:36 -07:00

universe

Zoo Universe

Infrastructure orchestration for Zoo Labs Foundation.

Architecture

zoo.ngo           — Marketing site (Vite SPA)
zoo.exchange      — DEX (Vite + Tamagui)
zoo.network       — Zoo Network validators
zoo.wallet        — Browser extension + mobile + web wallet
docs.zoo.ngo      — Documentation (fumadocs)
zips.zoo.ngo      — Zoo Improvement Proposals

Local Development

docker compose up        # All services
docker compose up ngo    # Just the website

Production (DOKS)

Three clusters:

  • do-sfo3-zoo-k8s — mainnet
  • do-sfo3-zoo-test-k8s — testnet
  • do-sfo3-zoo-dev-k8s — devnet

Deploy:

./deploy.sh mainnet
./deploy.sh testnet
./deploy.sh devnet

Repos

Repo Package Purpose
zoo/ngo @zooai/ngo-web Marketing site
zoo/exchange @zooai/exchange DEX frontend
zoo/wallet @zooai/wallet Wallet (ext + mobile + web)
zoo/ui @zooai/ui + @zooai/gui Design system
zoo/node — Rust blockchain node
zoo/docs @zoo/docs Documentation
zoo/ZIPs — Improvement Proposals
zoo/papers — Research papers (47)
zoo/formal — Formal proofs (20)
S
Description
Declared state for the zoo fleet: one values file per service, one ApplicationSet
Readme
1.2 MiB
Languages
TypeScript 70.1%
Shell 21.5%
Makefile 8.4%