Files
universe/k8s/zoo-devnet/snapshot-native/20-zoonetwork-snapshot-native.patch.yaml
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

22 lines
1.0 KiB
YAML

# Enable native ZAP replication on the zoo devnet ZooNetwork CR (merge-patch).
# kubectl --context zoo-k8s -n zoo-devnet patch zoonetwork zoo-chain --type=merge --patch-file=20-zoonetwork-snapshot-native.patch.yaml
# The ZooNetwork CRD allows unknown fields (x-kubernetes-preserve-unknown-fields),
# so spec.replication is accepted now; the zooai operator expands it into the
# native REPLICATE_* env (parity with luxfi/operator). REQUIRES a build-zoo image
# built against database >= v1.20.3. EVM chainId 200202, primary-network id 3.
spec:
snapshotSchedule: { includeRlpExports: false } # retires luxd-rlp-import.yaml
replication:
enabled: true
s3Endpoint: http://s3.zoo-system.svc.cluster.local:9000
s3UseSsl: false
s3Bucket: zoo-snapshots
s3Region: us-central1
s3Path: zoo/devnet/zaprepl
credentialsSecret: replicate-s3-creds
ageRecipient: "age1pq1REPLACE_WITH_PQ_PUBLIC_RECIPIENT"
ageIdentitySecret: replicate-age
sourceNodeIndex: 0
snapshotIntervalSeconds: 3600
incrementalIntervalSeconds: 5