Files
universe/k8s/zoo-mainnet/zoo-build.yaml
T
Hanzo AI 436b90b62f k8s/zoo-mainnet: bring zoo-bot + zoo-build under zoo/universe ownership
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.
2026-06-03 11:24:02 -07:00

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