Files
zeekayandHanzo Dev 11178ac57c pars: white-label the work board via a VITE_BRAND brand map
One repo, one Dockerfile. Brand-varying values (chain, addresses, owner
label, header/title, CSP RPC host) move into src/brands.ts, selected at
build time by VITE_BRAND (default zoo). The zoo profile reproduces the
prior hardcoded values exactly, so work.zoo.network is unchanged.

Adds the pars profile (chain 494949, BountyV1 0x316B..cf1F) plus CI and
k8s to stand up work.pars.network:
- docker.yml: a brand matrix builds zoo :sha-<sha> and pars :pars-<sha>
  from the same Dockerfile on the luxfi ARC pool.
- k8s/pars/: Deployment + Service (ns pars) + Traefik route fragment.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-17 16:52:23 -07:00

33 lines
1.4 KiB
YAML

# Traefik (hanzoai/ingress) dynamic-config route for work.pars.network.
#
# The pars-k8s cluster routes every public host via Traefik's @file provider —
# ConfigMap hanzo/pars-dynamic mounted at /etc/traefik/dynamic — NOT via
# Kubernetes Ingress objects. api.pars.network and pars.vote are served exactly
# this way. TLS is auto-issued by Traefik's built-in ACME resolver
# (certResolver: letsencrypt), so no cert-manager Certificate/secret is involved.
#
# Apply by merging this fragment into the pars-dynamic ConfigMap's routes.yaml
# (leaving the existing api./rpc./kms./pars.vote/vote./safe./status. routes
# untouched):
# CM=pars-dynamic; NS=hanzo
# kubectl --context do-sfo3-pars-k8s -n $NS get cm $CM -o jsonpath='{.data.routes\.yaml}' > /tmp/routes.yaml
# # merge the router + service below, then:
# kubectl --context do-sfo3-pars-k8s -n $NS patch cm $CM --type merge \
# -p "$(jq -n --rawfile r /tmp/merged.yaml '{data:{"routes.yaml":$r}}')"
# Traefik (--providers.file.watch=true) hot-reloads within ~60s and issues the cert.
http:
routers:
work-pars-network:
entryPoints:
- websecure
rule: Host(`work.pars.network`)
service: work-board
tls:
certResolver: letsencrypt
services:
work-board:
loadBalancer:
passHostHeader: true
servers:
- url: http://work-board.pars.svc.cluster.local:80