Files

109 lines
3.7 KiB
YAML

# Zoo mainnet — 5 validators that join Lux mainnet primary network (networkId 1)
# and track the Zoo EVM chain (chainID 200200, blockchainID
# 4HBM17czc7zFQMPrd9CVZ6YbABm1jecf99iwvFw8Gbo6gFaU3 — looked up live
# 2026-06-10 from api.lux.network/v1/chain/p platform.getBlockchains).
#
# Bootstrap IPs and NodeIDs are the public addresses of the Lux mainnet
# validators (do-sfo3-lux-k8s, namespace lux-mainnet, LB IPs 2026-06-10).
# RLP seed for chain 200200 is loaded by luxd-rlp-import.yaml below.
apiVersion: zoo.network/v1alpha1
kind: ZooNetwork
metadata:
name: zoo-chain
spec:
networkId: 1
validators: 5
# zooai/node (zood) — replaces the ghcr.io/luxfi/node stopgap so the
# validators carry the Zoo EVM + AI precompiles (0x0303 inference, 0x0304
# aivmbridge) and can run Beluga as a real L3, not an inert luxd subnet.
# Pin to the immutable semver CI publishes (NEVER floating in prod); see the
# statefulset-patch.yaml command change (./luxd -> zood). Rollout is a gated
# prod step — it restarts the 5 live L2 validators, so apply in a window
# after the ghcr.io/zooai/node image is verified.
image:
repository: ghcr.io/zooai/node
tag: 0.2.0
pullPolicy: IfNotPresent
resources:
# requests sized to fit the zoo-nodes pool (s-4vcpu-8gb-amd, ~6.26Gi /
# ~3.8 vCPU allocatable per node); matches zoo-testnet so 5 replicas can
# co-schedule. Limits stay generous (16Gi / 8 vCPU) for mainnet headroom.
cpuRequest: "1"
cpuLimit: "8"
memoryRequest: 4Gi
memoryLimit: 16Gi
storage:
storageClass: do-block-storage
size: 200Gi
# NOTE: the Rust zoo-operator renders these config keys as ZOO_* env vars,
# but luxd does NOT read its http-host / bootstrap flags from ZOO_* env — it
# only honors real CLI flags. The flags that actually configure the node
# (--http-host=0.0.0.0, --bootstrap-ips, ...) are injected via the
# statefulset-patch.yaml strategic-merge patch below (see kustomization.yaml).
config:
BOOTSTRAP_IPS: "129.212.164.46:9631,137.184.246.133:9631,143.244.210.43:9631,143.244.210.71:9631,24.144.70.85:9631"
BOOTSTRAP_IDS: "NodeID-Mf3JfSY91oDwfBqf7rCLmhg4NDtDghw1f,NodeID-2TwSZ2oyeBK2mv7JiseEQ8m74rotDj4QR,NodeID-Ld9VFBQ9zGbd79z2vzaAqkQ3jHuqbtRpo,NodeID-8mY2fhUehN27v3LCU84BnnKEoeRfd2weC,NodeID-DwsrqSkPoE3pXWrUt9nkJ5yBycwRQ246X"
TRACK_CHAINS: "4HBM17czc7zFQMPrd9CVZ6YbABm1jecf99iwvFw8Gbo6gFaU3"
SYBIL_PROTECTION_ENABLED: "true"
---
# Zoo EVM chain status — operator just stamps status; tracking happens
# via TRACK_CHAINS env on the validator.
apiVersion: zoo.network/v1alpha1
kind: ZooChain
metadata:
name: zoo-evm
spec:
chainId: 200200
blockchainId: 4HBM17czc7zFQMPrd9CVZ6YbABm1jecf99iwvFw8Gbo6gFaU3
networkRef: zoo-chain
---
# Mainnet explorer — Lux explorer Go binary v1.2.18.
apiVersion: zoo.network/v1alpha1
kind: ZooExplorer
metadata:
name: zoo-explorer
spec:
chainRef: zoo-evm
image: ghcr.io/luxfi/explorer:1.2.18
rpcEndpoint: http://zoo-chain-rpc.zoo-mainnet.svc.cluster.local:9630/v1/chain/4HBM17czc7zFQMPrd9CVZ6YbABm1jecf99iwvFw8Gbo6gFaU3/rpc
chainName: zoo
coinSymbol: ZOO
service:
serviceType: ClusterIP
port: 8090
---
# Mainnet gateway — RPC entry point.
apiVersion: zoo.network/v1alpha1
kind: ZooGateway
metadata:
name: zoo-gateway
spec:
networkRef: zoo-chain
hosts:
- api.zoo.network
tls:
enabled: true
secretName: zoo-network-tls
---
# Single zoo-operator lives in zoo-system; per-env Deployments scale to 0.
apiVersion: apps/v1
kind: Deployment
metadata:
name: zoo-operator
spec:
replicas: 0
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: zoo-bridge
spec:
replicas: 2
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: zoo-ingress
spec:
replicas: 2