feat(docker-dev): Traefik routes only the central cluster UI
This commit is contained in:
@@ -1,12 +1,10 @@
|
|||||||
# docker-dev companion to scripts/install/traefik-dynamic.yml. Routes three
|
# docker-dev companion to scripts/install/traefik-dynamic.yml. Routes the single
|
||||||
# Akka clusters that share the Compose network:
|
# central cluster UI on the shared Compose network:
|
||||||
#
|
#
|
||||||
# - Main cluster (default): PathPrefix(`/`) → admin-a / admin-b.
|
# - Central UI (only route): PathPrefix(`/`) → central-1 / central-2.
|
||||||
# - Site A cluster: Host(`site-a.localhost`) → site-a-1 / site-a-2.
|
|
||||||
# - Site B cluster: Host(`site-b.localhost`) → site-b-1 / site-b-2.
|
|
||||||
#
|
#
|
||||||
# Host-header rules are more specific than PathPrefix, so they win over the
|
# The driver-only site nodes serve no UI, so they have no Traefik route — the
|
||||||
# default router for the site hostnames automatically — no priority field needed.
|
# central cluster manages and deploys to them over the shared Akka mesh.
|
||||||
|
|
||||||
http:
|
http:
|
||||||
routers:
|
routers:
|
||||||
@@ -15,16 +13,6 @@ http:
|
|||||||
rule: "PathPrefix(`/`)"
|
rule: "PathPrefix(`/`)"
|
||||||
service: otopcua-admin
|
service: otopcua-admin
|
||||||
|
|
||||||
otopcua-site-a:
|
|
||||||
entryPoints: ["web"]
|
|
||||||
rule: "Host(`site-a.localhost`)"
|
|
||||||
service: otopcua-site-a
|
|
||||||
|
|
||||||
otopcua-site-b:
|
|
||||||
entryPoints: ["web"]
|
|
||||||
rule: "Host(`site-b.localhost`)"
|
|
||||||
service: otopcua-site-b
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
otopcua-admin:
|
otopcua-admin:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
@@ -37,44 +25,8 @@ http:
|
|||||||
httpOnly: true
|
httpOnly: true
|
||||||
sameSite: lax
|
sameSite: lax
|
||||||
servers:
|
servers:
|
||||||
- url: "http://admin-a:9000"
|
- url: "http://central-1:9000"
|
||||||
- url: "http://admin-b:9000"
|
- url: "http://central-2:9000"
|
||||||
healthCheck:
|
|
||||||
path: /health/active
|
|
||||||
interval: 5s
|
|
||||||
timeout: 2s
|
|
||||||
|
|
||||||
otopcua-site-a:
|
|
||||||
loadBalancer:
|
|
||||||
# Blazor Server uses SignalR; the WebSocket upgrade must hit the same
|
|
||||||
# backend that owns the circuit ID. Sticky cookie keeps each session
|
|
||||||
# pinned to one node so the post-handshake WebSocket doesn't 404.
|
|
||||||
sticky:
|
|
||||||
cookie:
|
|
||||||
name: otopcua_lb
|
|
||||||
httpOnly: true
|
|
||||||
sameSite: lax
|
|
||||||
servers:
|
|
||||||
- url: "http://site-a-1:9000"
|
|
||||||
- url: "http://site-a-2:9000"
|
|
||||||
healthCheck:
|
|
||||||
path: /health/active
|
|
||||||
interval: 5s
|
|
||||||
timeout: 2s
|
|
||||||
|
|
||||||
otopcua-site-b:
|
|
||||||
loadBalancer:
|
|
||||||
# Blazor Server uses SignalR; the WebSocket upgrade must hit the same
|
|
||||||
# backend that owns the circuit ID. Sticky cookie keeps each session
|
|
||||||
# pinned to one node so the post-handshake WebSocket doesn't 404.
|
|
||||||
sticky:
|
|
||||||
cookie:
|
|
||||||
name: otopcua_lb
|
|
||||||
httpOnly: true
|
|
||||||
sameSite: lax
|
|
||||||
servers:
|
|
||||||
- url: "http://site-b-1:9000"
|
|
||||||
- url: "http://site-b-2:9000"
|
|
||||||
healthCheck:
|
healthCheck:
|
||||||
path: /health/active
|
path: /health/active
|
||||||
interval: 5s
|
interval: 5s
|
||||||
|
|||||||
Reference in New Issue
Block a user