Commit Graph
3 Commits
Author SHA1 Message Date
hanzo-dev 11afcc3033 fix(zoo): pass luxd flags to zoo-chain so validators stay up
The Rust zoo-operator configures each validator by passing the ZooNetwork CR
config map as ZOO_* env vars. luxd (ghcr.io/luxfi/node, CMD ["./luxd"]) does
NOT read http-host / bootstrap / track-chains from ZOO_* env — only from real
CLI flags. So luxd bound its HTTP/health API to the default 127.0.0.1: the
kubelet liveness probe targets the pod IP, never reaches /ext/health, and
SIGTERMs the node ~90s after boot — an endless restart loop that kept testnet
and devnet validators from ever stabilizing (and would have hit mainnet too).

Inject the flags directly onto the operator-rendered StatefulSet via a
per-overlay statefulset-patch.yaml, applied by deploy-all.sh right after the
kustomize apply (the operator owns the StatefulSet, so it is not in the
kustomize set and cannot be patched through the overlay; the operator does not
re-render an existing pod template, so the patch persists).

- --http-host=0.0.0.0 + --http-allowed-hosts=* so the probe can reach health
- --bootstrap-ips/--bootstrap-ids/--network-id/--sybil-protection-enabled as
  real flags (the ZOO_* env equivalents were silently ignored: nodes booted
  with 'Adding bootstrap nodes ... count=0')
- devnet: drop the bogus --track-chains=zoo (and TRACK_CHAINS env) — luxd
  rejects the bare 'zoo' alias; the devnet Zoo EVM chain isn't created yet
2026-06-23 19:21:58 +00:00
Hanzo AI f518621f63 universe: full DX collapse — kill dead auth subnet, SQLite + Litestream, fix CI drift
Major collapses across 61 files (-2394 / +642, net -1752):

- Killed Zoo Auth Subnet: parallel auth chain contradicts hanzo.id Casdoor as canonical IAM
  (deleted k8s/zoo-auth/, compose.auth.yml, auth-gateway/, chain-configs/auth-subnet-genesis.json)
- Postgres StatefulSet → SQLite + Litestream + MinIO replication (per memory no_postgres_sqlite_only)
  Bridge becomes single-writer (replicas: 1) with restore init + replicate sidecar
- Plaintext Cloudflare API token in .env wiped; .env added to .gitignore
- 7× <your-domain> CI placeholders → kms.hanzo.ai
- 3 per-env manifests (3 × 130 lines, 90% dup) → 1 canonical manifests/services.yml (89 lines)
- 6 floating tags (:latest / :main) → :main-amd64 immutable per-arch
- Broken org refs ghcr.io/zoolabs/* + @zoolabs npm → ghcr.io/zooai/* + @zooai
- Workflow runner pool zoo-build-amd64 (wrong) → zoo-build-linux-amd64 (canonical)
- ENV var conflation ZOO_NETWORK_ID → LUX_NETWORK_ID + ZOO_EVM_CHAIN_ID
- Stale dev scripts (start/stop/status/setup.sh), convert-to-submodules.sh, Dockerfile.dev,
  .gitmodules, zoo.id/ static page, retired ARC values, k8s/patches/ all removed
- Duplicate deploy.yml workflow (shadows ci.yml) killed
- Makefile extended with remote-ops targets (deploy-{dev,test,main}, pods-{dev,test,main}, verify)

Tier-1 metrics all zero: plaintext secrets, Postgres in source, /api/ in own routes, brand contamination.

Zoo L2 EVM on Lux mainnet remains GREEN (chainId 0x30e08, balance 5e27 wei).
All 4 kustomize overlays render clean (system=35, devnet=36, testnet=36, mainnet=39).
2026-06-03 11:12:00 -07:00
Hanzo AI 8bf7f4c659 feat: CI/CD pipeline -- build-service, manifests, deploy, renovate (matches liquidity pattern)
- manifests/{main,test,dev}.yml: 13 services across zoo-{mainnet,testnet,devnet}
- build-service.yml: reusable lint+test+build+push to GHCR, notify universe
- ci.yml: layer 2 orchestrator -- deploy-single, deploy-all, E2E
- scripts/ci/update-manifest.sh: atomic manifest field update
- scripts/ci/deploy-all.sh: kustomize-based deploy to DOKS
- renovate.json: auto-merge minor/patch for zoo-labs + hanzoai images

All GHCR (ghcr.io/zoo-labs/*), all DOKS (do-sfo3-zoo-k8s), no GAR/GKE.
2026-04-07 09:57:44 -07:00