Some checks failed
Sync infra to hosts / sync-beta (push) Has been skipped
Sync infra to hosts / sync-prod (push) Has been skipped
Sync infra to hosts / sync-dev (push) Failing after 6s
secrets-guard / encrypted (push) Successful in 6s
shell-lint / shellcheck (push) Successful in 13s
Validate observability stack / validate (push) Successful in 17s
PR build (required check) / changes (pull_request) Successful in 6s
secrets-guard / encrypted (pull_request) Successful in 5s
PR build (required check) / build-backend (pull_request) Has been skipped
shell-lint / shellcheck (pull_request) Successful in 6s
PR build (required check) / build-frontend (pull_request) Has been skipped
PR build (required check) / validate-observability (pull_request) Successful in 18s
PR build (required check) / gate (pull_request) Successful in 2s
30 lines
1.2 KiB
Bash
Executable file
30 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Run ONCE, on the manager node only (vps2 — the box with headroom for prod's
|
|
# and beta's Swarm stacks and their local volumes). Initializes the Swarm
|
|
# advertising the WireGuard address, so cluster traffic never touches the
|
|
# public interface. Run setup-wireguard.sh on all THREE nodes first (vps2,
|
|
# vps1, and the desktop — see
|
|
# docs/runbooks/implementation-handoff.md Track B steps 2-3).
|
|
set -euo pipefail
|
|
|
|
MY_WG_IP="${1:?usage: $0 <my_wg_ip>}"
|
|
|
|
if docker info 2>/dev/null | grep -q "Swarm: active"; then
|
|
echo "Swarm is already active on this node. Current state:"
|
|
docker node ls
|
|
echo
|
|
echo "Worker join token:"
|
|
docker swarm join-token -q worker
|
|
exit 0
|
|
fi
|
|
|
|
echo "==> docker swarm init, advertising ${MY_WG_IP} (the WireGuard address, not the public IP)"
|
|
docker swarm init --advertise-addr "$MY_WG_IP" --listen-addr "${MY_WG_IP}:2377"
|
|
|
|
echo
|
|
echo "==> Worker join command (run this on EACH of the two workers — vps1 and"
|
|
echo " the desktop; the same token works for both):"
|
|
TOKEN="$(docker swarm join-token -q worker)"
|
|
echo " docker swarm join --token ${TOKEN} ${MY_WG_IP}:2377"
|
|
echo
|
|
echo "(Or run deploy/swarm/join-swarm.sh <manager_wg_ip> <token> on each worker.)"
|