Files
universe/k8s/SNAPSHOT-NATIVE-ROLLOUT.md
Hanzo DevandGitHub ea03508ca7 feat(k8s): unify with luxfi/universe — coherent boot + snapshot-native replication (#3)
Brings zoo to parity with lux: the SAME luxd-boot.sh (byte-identical to
luxfi/universe k8s/boot) drives every network, and native ZAP replication
(PQ-encrypted, restore-on-boot) replaces the boot-time admin_importChain (RLP)
path.

- k8s/boot/: shared entrypoint + mainnet/testnet/devnet env (ids 1/2/3,
  zoo EVM chainIds 200200/200201/200202, S3 path zoo/<net>/zaprepl,
  endpoint s3.zoo-system). Script is byte-identical to luxfi/universe.
- k8s/zoo-<net>/snapshot-native/: replicate-s3-creds + replicate-age secrets
  (fill from KMS) + ZooNetwork replication merge-patch. CRD already allows
  unknown fields, so spec.replication is accepted today.
- zoo-mainnet/luxd-rlp-import.yaml: RETIRED banner; kept as the provenance
  record of the one-time chain-200200 seed (now in the snapshot stream).
- SNAPSHOT-NATIVE-ROLLOUT.md: per-network apply order (devnet→testnet→mainnet).

Requires build-zoo rebuilt on database >= v1.20.3 and zooai operator
replication-env parity (mirror of luxfi/operator); until then the boot script
sets REPLICATE_* itself so replication works without operator changes.

Co-authored-by: Hanzo Dev <[email protected]>
2026-06-15 22:35:51 -07:00

1.4 KiB

Zoo snapshot-native rollout

Unifies zoo with luxfi/universe: one coherent boot (k8s/boot/luxd-boot.sh, byte-identical to Lux) + native ZAP replication to zoo-system MinIO, replacing the boot-time admin_importChain (RLP) path. PQ-encrypted (ML-KEM-768+X25519), restore-on-boot.

Layout

  • k8s/boot/ — shared entrypoint + <net>.env (mainnet/testnet/devnet).
  • k8s/zoo-<net>/snapshot-native/ — replicate-* secrets + ZooNetwork patch.
  • k8s/zoo-mainnet/luxd-rlp-import.yaml — RETIRED; kept as provenance only.

Apply (per network; mainnet is production → prepare, then apply deliberately)

# 1. fill KMS values into 10-replicate-secret.yaml (S3 creds + PQ identity)
kubectl --context zoo-k8s -n zoo-<net> apply -f k8s/zoo-<net>/snapshot-native/10-replicate-secret.yaml
# 2. enable replication on the CR
kubectl --context zoo-k8s -n zoo-<net> patch zoonetwork zoo-chain --type=merge \
  --patch-file k8s/zoo-<net>/snapshot-native/20-zoonetwork-snapshot-native.patch.yaml
# 3. roll the node image to one built against database >= v1.20.3

Order: devnet → testnet → mainnet. Requires the build-zoo image rebuilt on database >= v1.20.3 and the zooai operator carrying the replication-env parity (mirror of luxfi/operator); until then, point the node command at /scripts/luxd-boot.sh (ConfigMap from k8s/boot/), which sets the REPLICATE_* env itself.