Control remote fleet workers over SSH with user, host, and key path
Some checks are pending
offline / test (push) Waiting to run

NS1 is marchon@70.88.205.138 using ~/.ssh/id_ed25519. Private key
bytes stay off git. Spawn, health, and kill go through ssh; remote
workers bind loopback only.
This commit is contained in:
George Lambert 2026-09-11 13:31:21 -04:00
parent b325f6f697
commit e89e006542
12 changed files with 425 additions and 34 deletions

View file

@ -23,7 +23,12 @@ operator --HTTP 127.0.0.1:3850--> fleet control
Define hosts in `packages/verae-fleet/machines.json` (or **Add machine** on the monitor). Each machine has `capacity` and `roles` it may run. The supervisor places new replicas on the **least-loaded** eligible host.
- `kind: local` — spawn on the control plane.
- `kind: agent` — HTTP to `http://host:agentPort` (`node src/agent.js` on that box). Do not publish NATS.
- `kind: ssh``user@host` with `identityFile` (path only, e.g. `~/.ssh/id_ed25519`). Control plane `scp`s the worker and `ssh`es spawn/kill/health. Workers stay on `127.0.0.1` on the remote host; NATS is not published.
- `kind: agent` — HTTP to `http://host:agentPort` (`node src/agent.js` on that box).
Override credentials in gitignored `machines.secrets.json` (see `machines.secrets.json.example`). Never put private-key bytes in git.
`node src/cli.js ssh-check ns1` verifies login as marchon@70.88.205.138.
Raising `tree-node.max` and adding machines increases bulk-summary lookup capacity.