Initial public ModelForge release
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user