Files
scadaproj/infra/glauth-redundant/docker-compose.yml
T
Joseph Doherty 58f605609d feat(infra): redundant GLAuth pair for FallbackServers failover drills
Two local glauth containers (zb-ldap-primary :3893 / zb-ldap-backup :3894)
simulating the NAM two-DC topology, so the primary can be killed during a
drill without touching the shared 10.100.0.35 instance. Drill recipe +
verified-PASS record (HistorianGateway, 2026-08-13) in the README.
2026-08-13 08:28:05 -04:00

37 lines
1.6 KiB
YAML

# Redundant LDAP test pair — two GLAuth instances simulating a primary + backup DC,
# for exercising ZB.MOM.WW.Auth.Ldap 0.2.x `FallbackServers` sticky failover.
#
# Runs LOCALLY on the dev Mac (not on 10.100.0.35) precisely so the "primary DC"
# can be stopped/started during a failover drill without touching the shared
# zb-shared-glauth that every other dev stack authenticates against.
#
# Both instances mount the SAME config.toml — identical directory contents, like a
# real replicated DC pair. The config is a copy of ../glauth/config.toml with ONE
# difference: the serviceaccount password here is the well-known local-dev value
# `serviceaccount123` (the shared instance's is rotated out-of-band, SEC-36).
#
# primary : ldap://localhost:3893 (containers reach it at host.docker.internal:3893)
# backup : ldap://localhost:3894 (containers reach it at host.docker.internal:3894)
#
# Drill: docker stop zb-ldap-primary → logins fail over to the backup (sticky)
# docker start zb-ldap-primary → preference STAYS on the backup by design
# docker stop zb-ldap-backup → next login walks back to the primary
name: zb-ldap-redundant
services:
ldap-primary:
image: glauth/glauth:latest
container_name: zb-ldap-primary
restart: unless-stopped
ports:
- "3893:3893"
volumes:
- ./config.toml:/app/config/config.cfg:ro
ldap-backup:
image: glauth/glauth:latest
container_name: zb-ldap-backup
restart: unless-stopped
ports:
- "3894:3893"
volumes:
- ./config.toml:/app/config/config.cfg:ro