SWARM Mode
anti edited this page 2026-04-19 00:23:25 -04:00
Clone

Wiki Page Revisions

6 Commits

Author SHA1 Message Date
201023ed17 docs(swarm): added 2026-04-19 00:23:25 -04:00
7c6fe3b576 docs(swarm): add buildx 0.17+ prereq alongside compose v2
Second Docker-side prereq uncovered running a real deploy on a fresh
Debian trixie VM: images pulled fine but 'docker compose up --build'
bailed with 'compose build requires buildx 0.17.0 or later'. Debian's
buildx is stuck at 0.13, so the compose-plugin install must be paired
with a buildx plugin install.

- Prereqs list now requires docker compose version AND docker buildx
  version to be verified before enrolling.
- Install section renamed to 'Installing Compose v2 and Buildx on a
  worker', covers both plugins with arch-aware curl incantations and
  uname -m → compose-arch / buildx-arch mapping (compose uses x86_64,
  buildx uses amd64 — footgun).
- Adds a troubleshooting row for the buildx-too-old case and one for
  wrong-arch binary ('Invalid Plugins: ... exec format error').

Both uncovered on the live VM run; docs now match reality.
2026-04-18 21:00:26 -04:00
60710d8f2f docs(swarm): spell out Compose v2 plugin prerequisite
Caught on a fresh Debian trixie VM: 'Docker Engine + Compose plugin' as
a one-liner prerequisite is a common setup trap because trixie (and
plenty of other distros) ship only the legacy 'docker-compose' (v1), not
the 'docker compose' subcommand that the DECNET deployer calls.

Adds two explicit install paths (Docker's apt repo for online boxes,
standalone binary via scp for lab/air-gapped networks), calls out why
legacy v1 does not work, and documents the exact failure signature
(exit 125 + docker help text) so the next person who hits it on the
worker side knows immediately what's wrong. Cross-references from the
troubleshooting table.
2026-04-18 20:47:19 -04:00
19ed1c2753 docs(swarm): drop known-limitation about master-side NIC mismatch
Agent now relocalizes master-built configs before dispatch (commit in
main repo: fix(swarm): relocalize master-built config on worker before
deploy). The wiki claimed this was a known limitation requiring
per-worker INI files; that workaround is no longer needed. Updated the
troubleshooting row to describe the new failure mode (worker can't
detect its own default route) instead of the old one.
2026-04-18 20:41:44 -04:00
37cfa353c5 docs(swarm): fix forwarder flag name (--log-file not --log-path)
The forwarder takes --log-file; --log-path is the listener flag. Caught
by ANTI running the command from the worker bootstrap section verbatim
and getting 'No such option: --log-path Did you mean --log-file?'.
2026-04-18 20:31:20 -04:00
2c75d6593f docs(swarm): add SWARM Mode page and cross-link from Deployment Modes
Comprehensive walkthrough for the newly-landed SWARM control plane:
- Architecture diagram (master: swarmctl/listener/ingester/api; worker:
  agent/forwarder) with ports cheat sheet
- Step-by-step setup (CA bootstrap, enrollment, bundle shipment, agent +
  forwarder startup, check, first swarm deploy)
- Full command reference for swarmctl, listener, agent, forwarder, and
  the swarm enroll/list/check/decommission subcommands
- Log-pipeline end-to-end story (RFC 5424 on worker → RFC 5425 mTLS on
  6514 → master.json → ingester → dashboard), including tcpdump-based
  plaintext-leak check and source_worker provenance note
- Operational concerns: master crash resume (no dup/loss), worker crash,
  CA rotation, cert rotation, teardown
- Security posture summary
- Known limitations (get_host_ip master-side bug, no web UI yet,
  round-robin only, single master)
- Troubleshooting matrix

Deployment-Modes: trimmed the old 'swarm is not implemented, drive it
from Ansible' section and replaced with a link to the new page.

_Sidebar: added SWARM-Mode under User docs.
2026-04-18 20:20:42 -04:00