1.5 KiB
ADR-0007: Outbound authenticated compute-node agent
- Status: accepted
- Date: 2026-08-25
Context
The central control plane must manage hardware on separate GPU servers without conflating the API host with the compute node. SSH orchestration, Docker socket exposure and inbound node services widen the trust boundary and do not provide a stable reporting protocol.
Decision
Run a lightweight unprivileged agent on each compute node. It initiates HTTPS requests to a versioned central API, reports typed inventory/telemetry and heartbeats, and persists its identity, credential and stream sequences. Enrollment secrets are random, short-lived, single-use and stored only as SHA-256 hashes. Issued credentials are random, node-scoped, hash-only at rest, revocable and never returned by list APIs. Administrative onboarding uses a separately configured operator secret.
The control plane uses server-received heartbeat time for liveness and retains agent observation time for provenance. Node roles, labels and eligibility are operator-managed metadata; inventory never grants production eligibility automatically.
Consequences
The compute server needs only outbound API reachability. Lost agent state requires explicit revocation/re-enrollment. HTTPS termination and CA trust are deployment responsibilities. Protocol evolution must remain explicit and test older/replayed/incompatible reports. Runtime execution is intentionally absent until M5/M6 define adapters and scheduling.