mirror of
https://github.com/luxfi/work-board.git
synced 2026-09-24 00:24:57 +00:00
This cluster's hanzoai/ingress (Traefik v3) routes every public zoo host through the zoo-dynamic ConfigMap (@file provider) with TLS auto-issued by its built-in ACME resolver over Cloudflare DNS-01 — exactly how api.zoo.network is served. Kubernetes Ingress objects don't produce the :443 router here (the api-zoo-network Ingress is vestigial too), so replace k8s/ingress.yaml with k8s/route.yaml, the router+service fragment merged into zoo-system/zoo-dynamic. One ACME client (Traefik), no cert-manager. Verified: https://work.zoo.network serves 200 with a valid LE cert (CN=work.zoo.network). Co-authored-by: Hanzo Dev <[email protected]>
32 lines
1.4 KiB
YAML
32 lines
1.4 KiB
YAML
# Traefik (hanzoai/ingress) dynamic-config route for work.zoo.network.
|
|
#
|
|
# This cluster's hanzoai/ingress (Traefik v3) routes every public host via the
|
|
# @file provider — ConfigMap zoo-system/zoo-dynamic mounted at
|
|
# /etc/traefik/dynamic — NOT via Kubernetes Ingress objects. api.zoo.network is
|
|
# served exactly this way (api-zoo-network router). TLS is auto-issued by
|
|
# Traefik's built-in ACME resolver over Cloudflare DNS-01 (certResolver:
|
|
# letsencrypt), so no cert-manager Certificate/secret is involved.
|
|
#
|
|
# Apply by merging this fragment into the zoo-dynamic ConfigMap's routes.yaml:
|
|
# CM=zoo-dynamic; NS=zoo-system
|
|
# kubectl -n $NS get configmap $CM -o jsonpath='{.data.routes\.yaml}' > /tmp/routes.yaml
|
|
# yq eval-all 'select(fileIndex==0) * select(fileIndex==1)' /tmp/routes.yaml k8s/route.yaml > /tmp/merged.yaml
|
|
# kubectl -n $NS patch configmap $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-zoo-network:
|
|
entryPoints:
|
|
- websecure
|
|
rule: Host(`work.zoo.network`)
|
|
service: work-board
|
|
tls:
|
|
certResolver: letsencrypt
|
|
services:
|
|
work-board:
|
|
loadBalancer:
|
|
passHostHeader: true
|
|
servers:
|
|
- url: http://work-board.zoo-mainnet.svc.cluster.local:80
|