Files
zeekayandHanzo Dev f7a0805a3b zoo.exchange reads Zoo's own market data
zoo.exchange printed "Total ZOO TVL $125,998.38" — Lux's factory total, to the
cent, under a ZOO label. Its brand.json named api-exchange.lux.network, so a
Zoo-branded site had been querying LUX's exchange-api all along and rendering
whatever came back as its own.

Zoo gets its own exchange-api on the explorer's zoo/amm graph, answering at
exchange.zoo.cloud/v1/graphql — centralized services live on .cloud, the way
Lux's does. DEX_DCHAIN_URL is named rather than defaulted: unset, it points at
lux-mainnet's luxd, which would have left Zoo reading LUX's order book after
fixing the graph.

The brand ConfigMap moves out of k8s/ and into the values file beside the
Deployment that mounts it, with a digest of its content in podAnnotations —
both keys mount with subPath, which is written once at container start and
never refreshed, so without that a brand edit reaches no running pod.

Both Zoo front ends were stranded on old images: the exchange on v5.149.23
against lux's 5.149.31, and explore on v1.1.30 while the v2.8.1-lux fanout
reported success and moved no pin.

Not 5.149.32: that tag's release published ghcr.io/luxfi/exchange-api but not
ghcr.io/luxfi/exchange, so the SPA image does not exist.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-11 10:36:56 -07:00

22 lines
794 B
YAML

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
# Zoo Exchange — standalone overlay (no inheritance from ../../base).
#
# Zoo's image (ghcr.io/zooai/exchange) is hanzoai/spa-architected: it
# templates /config.json from env vars on pod start, no init-container
# sed needed. Different selectors (app: zoo-exchange not app: exchange)
# preserve cluster state.
namespace: zoo
# The brand ConfigMap is NOT here: it moved into deploy/zoo/zoo-exchange.yaml,
# next to the Deployment that mounts it, so the workload and the file it cannot
# brand itself without are applied by one thing. Two homes for one object is how
# a hand-applied edit and a CD sync end up disagreeing about the brand.
resources:
- kmssecret.yaml
- deployment.yaml
- middleware.yaml
- ingress.yaml