Files
Hanzo AI e387ff4859 Zoo asks luxd for chains where luxd serves them
The zoo manifests, the compose file and the e2e helpers all composed
/v1/bc addresses against luxd, which answers under /v1/chain and no
longer serves the old segment.

A line that records an observation keeps its original spelling.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-03 21:32:56 -07:00

95 lines
2.3 KiB
YAML

# Zoo mainnet — API + explorer proxy to upstream Lux mainnet (which tracks Zoo chain).
# Zoo runs as an L2 chain validated by Lux mainnet validators; RPC is served by
# Lux mainnet's chainAlias "zoo" route.
---
# ExternalName Service pointing at Lux mainnet API (which tracks Zoo chain).
apiVersion: v1
kind: Service
metadata:
name: zoo-rpc-upstream
namespace: zoo-mainnet
labels:
app: zoo-rpc-upstream
spec:
type: ExternalName
externalName: api.lux.network
ports:
- name: https
port: 443
targetPort: 443
protocol: TCP
---
# Replace zoo-rpc to point to upstream — keep an httpRedirect middleware
# via traefik IngressRoute so we can rewrite path.
# Use IngressRoute (traefik.io/v1alpha1) for path rewrite via Middleware.
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: zoo-rpc-rewrite
namespace: zoo-mainnet
spec:
replacePathRegex:
regex: "^/(.*)$"
replacement: "/v1/chain/zoo/rpc/$1"
---
# This middleware strips a leading slash from blank paths (root POST).
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: zoo-host-rewrite
namespace: zoo-mainnet
spec:
headers:
customRequestHeaders:
Host: "api.lux.network"
---
# IngressRoute for api.zoo.network → Lux mainnet zoo chain RPC.
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: zoo-api
namespace: zoo-mainnet
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
entryPoints:
- websecure
routes:
- match: Host(`api.zoo.network`)
kind: Rule
middlewares:
- name: zoo-rpc-rewrite
- name: zoo-host-rewrite
services:
- name: zoo-rpc-upstream
port: 443
scheme: https
serversTransport: zoo-upstream-transport
passHostHeader: false
tls:
secretName: zoo-network-tls
---
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
name: zoo-upstream-transport
namespace: zoo-mainnet
spec:
serverName: api.lux.network
---
# Certificate for api.zoo.network + explore.zoo.network.
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: zoo-network-tls
namespace: zoo-mainnet
spec:
secretName: zoo-network-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- api.zoo.network
- explore.zoo.network
- bridge.zoo.network