Agent Machine deployment files are currently skeleton targets. They make the local and Kubernetes runtime contracts concrete, but they are not production release manifests.
This distinction matters. Agent Machine runs sensitive agent infrastructure: model stores, prompt-prefix cache, KV cache, retrieval packs, tool surfaces, browser/terminal runtimes, scratch workspaces, and execution evidence. A runnable manifest is not automatically a safe manifest.
| Surface | File | Status |
|---|---|---|
| Local Podman Quadlet | deploy/quadlet/agent-machine-llama-cpp.container |
Skeleton local AgentPod template |
| Kubernetes / TopoLVM | deploy/k8s/llama-cpp-topolvm-pod.yaml |
Skeleton cluster AgentPod template |
These files are intended to drive contract alignment and validation. They should not be treated as final production deployment artifacts.
Before any sensitive workload uses an Agent Machine deployment, the following gates are required.
Container images must be pinned by digest. Tags are mutable and are insufficient for repeatable agent execution.
Required evidence:
- image reference;
- immutable digest;
- registry origin;
- SBOM reference where available;
- vulnerability scan reference where available.
Runtime artifacts must have signed provenance where possible. This includes container images, local binaries, installer artifacts, schemas, generated manifests, and release bundles.
Required evidence:
- signer identity;
- signature reference;
- attestation reference;
- source commit;
- build workflow identity.
Policy Fabric must approve the workload before activation. The deployment should be treated as desired state, not authorization by itself.
Admission should cover:
- workload purpose;
- allowed agent identity;
- allowed model/provider;
- allowed cache reuse domain;
- allowed network exposure;
- allowed storage classes;
- allowed side effects;
- required receipts.
Every non-human runtime participant must resolve through Agent Registry before the workload starts handling sensitive context.
Grant checks should cover:
- agent identity;
- session identity;
- tool grants;
- model/provider authorization;
- memory/cache scope;
- revocation status;
- expiration.
Network exposure must be denied by default.
Local defaults:
- bind inference endpoints to loopback only;
- deny external exposure unless explicitly policy-approved;
- avoid host networking by default.
Kubernetes defaults:
- ClusterIP only for skeleton services;
- default-deny egress;
- explicit ingress policy before any cross-pod or external access;
- no public ingress without signed intent and policy approval.
Storage mounts carry sensitive cache and model state. Every deployment must treat prompt/KV cache as sensitive.
Required checks:
- model volume mounted read-only where possible;
- cache volume scoped by identity and policy domain;
- evidence volume secret-free by default;
- scratch volume explicitly ephemeral or lifecycle-managed;
- no world-writable sensitive mountpoints;
- encryption posture recorded;
- quota and wipe behavior recorded;
- snapshot lineage recorded when snapshots are allowed.
Agent Machine deployments must emit receipts for placement, runtime, storage, and policy-relevant events.
Receipts must not include:
- raw prompt content;
- raw KV-cache content;
- private memory contents;
- unredacted credentials;
- model-provider secrets.
Receipts should include:
- AgentMachine ID;
- AgentPod ID;
- provider ID;
- model digest where applicable;
- tokenizer digest where applicable;
- image digest where applicable;
- storage backend and volume class;
- policy decision reference;
- Agent Registry grant reference;
- timestamp and runtime version.
Local and Kubernetes runtimes should enforce least privilege.
Required defaults:
- no privileged containers;
- no secret values in specs;
- no host network unless policy-approved;
- no raw Docker socket mounts;
- read-only root filesystem where possible;
- dropped capabilities by default;
- SELinux labels preserved where SELinux is enforcing;
- seccomp default profile where Kubernetes supports it.
The current skeletons intentionally omit some production controls so the repo can stabilize the contract first.
Known missing controls:
- digest-pinned images;
- generated manifests from AgentPod objects;
- live Policy Fabric admission checks;
- live Agent Registry grant resolution;
- signed deployment bundles;
- storage receipt sidecar or controller;
- model digest inventory;
- tokenizer digest inventory;
- NetworkPolicy ingress design;
- PodDisruptionBudget / Deployment / StatefulSet controller shape;
- service monitor / metrics surface.
A deployment file may move from skeleton to production candidate only when it has:
- schema-backed source object;
- generated or reproducible manifest path;
- image digest pinning;
- policy admission reference;
- Agent Registry grant reference;
- storage receipt behavior;
- network policy behavior;
- validation in CI;
- documented rollback and wipe behavior.
- Validate YAML syntax and basic safety in CI.
- Add manifest generation from AgentPod examples.
- Add digest-pinned image references.
- Add deployment receipt schema.
- Add Policy Fabric admission stub.
- Add Agent Registry grant stub.
- Add local Quadlet activation plan.
- Add Kubernetes controller shape after the schema stabilizes.