Coordination with the Lux universe DX cleanup — Zoo brand sites belong in Zoo universe, not Lux universe. The corresponding files in ~/work/lux/universe/k8s/zoo-mainnet/ will be removed in the matched Lux universe commit. zoo-bot.yaml and zoo-build.yaml each declare a Deployment + Service + hanzo.ai/v1alpha1 IngressRoute. The previous lux/universe/k8s/zoo-mainnet/ directory had no kustomization.yaml, so these were applied imperatively to lux-k8s; folding them into the zoo/universe kustomization brings them under the same brand-bounded reconciliation path as zoo-industries. Live deployments preserved: lux-k8s zoo-mainnet/zoo-bot 1/1 33d lux-k8s zoo-mainnet/zoo-build 1/1 34d lux-k8s zoo-mainnet/zoo-industries 1/1 33d (already in repo) zoo-build image still on ghcr.io/luxfi/build-zoo:0.1.7 — follow-up to migrate the build pipeline to ghcr.io/zooai/* per the canonical container registry rule.
113 lines
2.6 KiB
YAML
113 lines
2.6 KiB
YAML
# zoo.builders / build.zoo.network — Zoo developer onboarding SPA.
|
|
#
|
|
# Lives on lux-k8s zoo-mainnet (Zoo brand sites run alongside Zoo L2
|
|
# validators on the Lux cluster — no separate zoo-k8s cluster).
|
|
#
|
|
# Image is built by luxfi/build CI from the Zoo content image; once Zoo
|
|
# CI takes over the build, the image should move to ghcr.io/zooai/* per
|
|
# CLAUDE.md container registry rules.
|
|
#
|
|
# Moved 2026-06-03 from lux/universe/k8s/zoo-mainnet/zoo-build.yaml as
|
|
# part of cross-repo cleanup (brand isolation: Zoo content belongs in
|
|
# Zoo universe, not Lux universe).
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: zoo-build
|
|
namespace: zoo-mainnet
|
|
labels:
|
|
app: zoo-build
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: zoo-build
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: zoo-build
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: ghcr-luxfi
|
|
containers:
|
|
- name: build
|
|
image: ghcr.io/luxfi/build-zoo:0.1.7
|
|
ports:
|
|
- containerPort: 3000
|
|
env:
|
|
- name: NODE_ENV
|
|
value: production
|
|
- name: NEXT_TELEMETRY_DISABLED
|
|
value: "1"
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 256Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: 3000
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 30
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: 3000
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: zoo-build
|
|
namespace: zoo-mainnet
|
|
labels:
|
|
app: zoo-build
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- port: 3000
|
|
targetPort: 3000
|
|
protocol: TCP
|
|
selector:
|
|
app: zoo-build
|
|
---
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: zoo-build
|
|
namespace: zoo-mainnet
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- match: Host(`zoo.builders`) || Host(`www.zoo.builders`)
|
|
kind: Rule
|
|
services:
|
|
- name: zoo-build
|
|
port: 3000
|
|
- match: Host(`build.zoo.network`)
|
|
kind: Rule
|
|
middlewares:
|
|
- name: redirect-build-zoo-network
|
|
services:
|
|
- name: zoo-build
|
|
port: 3000
|
|
tls:
|
|
certResolver: letsencrypt
|
|
---
|
|
apiVersion: hanzo.ai/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: redirect-build-zoo-network
|
|
namespace: zoo-mainnet
|
|
spec:
|
|
redirectRegex:
|
|
regex: "^https://build\\.zoo\\.network/(.*)"
|
|
replacement: "https://zoo.builders/${1}"
|
|
permanent: true
|