RuntimeInstrumentation Host Agent Strategy

Decision Summary

RuntimeInstrumentation should be implemented as Stella Ops host agents for non-Kubernetes container estates. The product surface is:

Tetragon is a Linux eBPF sensor and bridge. It is not the Stella Ops Linux agent. It can supply high-value Linux runtime observations to the Linux agent, but it does not own agent identity, install lifecycle, runtime status authority, evidence buffering, signing, policy configuration, or publication.

Kubernetes is not active scope. RuntimeInstrumentation must not add Helm charts, DaemonSets, Kubernetes watches, Kubernetes informers, or Kubernetes-first deployment instructions.

Product Split

CapabilityProduct meaningTechnical owner
Stella Ops Linux agentInstalled host service for Linux container hostsStella Ops
Stella Ops Windows agentInstalled Windows Service for Windows container hostsStella Ops
TetragonOptional Linux eBPF sensor inputExternal sensor, bridged by Stella Ops
Agent.CoreCommon agent contracts and behaviorStella Ops
Runtime status sourceLocal authority for container image identity and host/runtime stateStella Ops agent plus approved local runtime APIs
Evidence publisherDigest-gated publishing, retry, quarantine, and audit metadataStella Ops

Why Tetragon Is Not The Linux Agent

Tetragon observes Linux kernel/user-space activity through eBPF. That makes it useful for process execution, syscall, and stack/symbol observations on Linux hosts.

The Stella Ops Linux agent has a broader product job:

Tetragon can feed observations into that agent. It does not replace that agent.

Implementation Path

Phase 1 - Shared Agent.Core Contracts

Create shared contracts before implementing OS-specific agents. This phase now has an initial implementation in src/RuntimeInstrumentation/StellaOps.Agent.Core/:

Acceptance expectations:

Phase 2 - Linux Host Agent

Implement the Linux agent as a Stella Ops owned host service. The base service now lives in src/RuntimeInstrumentation/StellaOps.Agent.Linux/.

Core responsibilities:

Acceptance expectations:

The base now publishes digest-valid local snapshots through the Agent.Core IRuntimeEvidencePublisher boundary. If no downstream publisher is configured, the default no-op publisher returns a retry result and the entry remains in the bounded spool.

Phase 3 - Windows Host Agent

Implement the Windows agent as a Stella Ops owned Windows Service. The base now lives in src/RuntimeInstrumentation/StellaOps.Agent.Windows/.

Core responsibilities:

Acceptance expectations:

Current base behavior:

Phase 4 - Optional Tetragon Bridge

Implement Tetragon as a Linux-only optional observation source.

Core responsibilities:

Acceptance expectations:

Current base behavior:

Phase 5 - CRI And Local Runtime Status Sources

Finish runtime status authority in layers:

  1. Keep file-backed and command-backed local status sources as the deterministic baseline.
  2. Add native Linux CRI/container runtime clients only after protobuf/gRPC or runtime API contracts are owned and license-approved.
  3. Add native Windows runtime clients only after Windows API ownership, permissions, and fixtures are approved.
  4. Keep each source optional and independently testable.

Acceptance expectations:

Phase 6 - Digest-Gated Evidence Publication

Implement evidence publication after local status and observation contracts are stable.

Core responsibilities:

Acceptance expectations:

Current implementation:

Phase 7 - Tests And CI

Add verification in layers:

CI expectations:

Current CI implementation:

Implementation Risks

Product Decisions Recorded