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]>
22 lines
1.0 KiB
YAML
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
|