CI/CD / render (push) Waiting to run
zoo.vote and zoo.industries are static bundles a pod was re-serving on every request. Both move to the site plane: the `public/` tree of the image digest each Deployment ran is synced to s3://hanzo-sites/zoo/vote and s3://hanzo-sites/zoo/industries, and each file now declares the Middleware that reads the prefix together with the route that names it. zoo-industries' server generated /public/config.json at boot from three SPA_* variables; the plane has no boot, so that file travels in the prefix carrying the values the pod served. zoo-ngo is deleted rather than converted. zoo.ngo and www.zoo.ngo already route to s3://hanzo-sites/zoo/ngo, and that prefix holds a newer build than the pod was serving to nobody -- no route in this namespace named it. A site declared twice is a site that goes stale in one of them. Co-authored-by: Hanzo AI <[email protected]>
50 lines
1.7 KiB
YAML
50 lines
1.7 KiB
YAML
# zoo.industries is files: one Middleware that serves them, one route that names
|
|
# it, and the endpoint-less Service the route schema requires. No image, so the
|
|
# chart renders no Deployment -- a static site is not a pod.
|
|
#
|
|
# The objects are the `public/` tree of
|
|
# ghcr.io/zooai/zoo-industries@sha256:7546cebac2b23f3131ca3b888c42db9c55f5e2b66b69bf0a9263dce1445dc26c,
|
|
# the digest the Deployment ran, plus one file it used to generate. That server
|
|
# wrote /public/config.json at boot from SPA_API_HOST, SPA_IAM_HOST and SPA_ENV;
|
|
# the plane has no boot, so the same three values travel as an object in the
|
|
# prefix, byte-for-byte what the running pod served:
|
|
#
|
|
# {"apiHost":"https://api.zoo.ngo","env":"prod","iamHost":"https://zoo.id","v":1}
|
|
#
|
|
# A rebuild ships by syncing `public/` to this prefix and keeping that file.
|
|
#
|
|
# The Deployment carried no route at all, so nothing has reached this bundle from
|
|
# inside the cluster. The route below is the first one.
|
|
cd:
|
|
automated: true
|
|
ports:
|
|
- name: http
|
|
containerPort: 80
|
|
middlewares:
|
|
- name: industries
|
|
spec:
|
|
staticFiles:
|
|
root: s3://hanzo-sites/zoo/industries
|
|
# Next `output: export` writes real HTML per route -- 56 files, one each
|
|
# for /about, /capabilities and the rest. A fallback would answer
|
|
# 200-with-the-homepage for a missing chunk, which reads exactly like a
|
|
# good visit, so a miss stays a miss.
|
|
spaMode: false
|
|
indexFiles:
|
|
- index.html
|
|
routes:
|
|
- name: industries
|
|
spec:
|
|
entryPoints:
|
|
- websecure
|
|
routes:
|
|
- match: Host(`zoo.industries`) || Host(`www.zoo.industries`)
|
|
kind: Rule
|
|
priority: 100
|
|
middlewares:
|
|
- name: industries
|
|
services:
|
|
- name: zoo-industries
|
|
port: 80
|
|
tls: {}
|