Files
ScadaBridge/docker/docker-compose.leader-auto-down.yml
T
Joseph Doherty 139a43fb25 test(docker): leader-auto-down rig failover drill — #116 rig gate PASS on central + site-a
Ran every #116 gate on the local docker rig (main 2d2e9f35), with an auto-down baseline
on the same build:
- active kill: takeover 29s central / 26s site-a; standby kill: downed 29s / 26s, 0 blips;
- boot logs: no deprecation warning, [leader-auto-down] started/unreachable/DOWNING lines;
- partition past the window: accepted dual-active, restart of one side recovers;
- cold start of both pairs together: one cluster each; site-a S&F drains on the survivor.

Extra: docker pause of the active node leaves a permanent second active after unpause on
BOTH strategies (Akka.Cluster ignores ThisActorSystemQuarantinedEvent) — filed as #132.

- docker/docker-compose.leader-auto-down.yml: opt-in overlay (env override) for the central
  and site-a pairs; shipped default stays auto-down.
- docker/failover-drill.sh: DRILL_PAIR (central|site-a|site-b|site-c), DRILL_ACTION
  (kill|pause), sidecar probes for unpublished site health, strict rejoin + dual-active check.
- docs/plans/2026-11-12-leader-auto-down-rig-drill.md (+ raw logs), docker/README.md.

Refs #116, #106, #132

Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi
2026-11-12 20:16:00 -05:00

28 lines
1.2 KiB
YAML

# Opt-in overlay: run the central pair and the site-a pair on the in-repo
# `leader-auto-down` downing provider (LeaderAutoDowningProvider, ScadaBridge#106)
# instead of the shipped default `auto-down`. Used by the #116 rig failover drill.
#
# The shipped default is NOT changed by this file: the mounted appsettings still say
# `auto-down`; this overlay layers an environment override on top (env wins over JSON).
#
# A downing-provider change must reach both nodes of a pair at the same time - never
# roll it one node at a time. Apply (from the main checkout, both pairs together):
#
# docker compose -f docker/docker-compose.yml -f docker/docker-compose.leader-auto-down.yml \
# up -d --force-recreate --no-deps central-a central-b site-a-a site-a-b
#
# Revert to the default by re-running the same command without the overlay file.
services:
central-a:
environment:
ScadaBridge__Cluster__SplitBrainResolverStrategy: "leader-auto-down"
central-b:
environment:
ScadaBridge__Cluster__SplitBrainResolverStrategy: "leader-auto-down"
site-a-a:
environment:
ScadaBridge__Cluster__SplitBrainResolverStrategy: "leader-auto-down"
site-a-b:
environment:
ScadaBridge__Cluster__SplitBrainResolverStrategy: "leader-auto-down"