Context
SourceOS Agent Machine needs a local data/mount plane that works first on Mac/Windows/Linux Podman workspaces and later maps cleanly to TopoLVM-backed local persistent volumes in cluster mode.
The immediate user convention is:
~/dev is the shared code/repository mount root.
~/Documents/SourceOS/agent-output is the shared agent document output root.
- Future directories may represent Photos, Notes, Reminders, Voice Memos, and other user app bridges, but those should be explicit interface doors and not mounted by default.
TopoLVM should become the cluster-local disk backend analogue for the same mount contract: local disk stays local, placement respects node topology, and mounts are explicit capabilities.
Scope
Add v0 schemas/examples for:
-
AgentMachineLocalDataPlane
- host root allowlist
- agent-visible mount paths
- path class: code | documents | cache | artifacts | media | app-bridge
- default access mode
- secrets prohibited flag
- evidence requirements
-
AgentMachineMountPolicy
- allowed host paths
- denied path patterns
- read/write mode
- sync/consistency mode
- owner/uid/gid mapping
- max size/quota hints
- retention policy
-
TopoLVMPlacementProfile
- storage class reference
- node topology constraints
- local persistent volume semantics
- pvc/pv claim hints
- expansion/snapshot posture
- evidence mapping back to AgentMachineLocalDataPlane
-
Examples:
- macOS Podman profile with
~/dev and ~/Documents/SourceOS/agent-output
- Linux native Podman profile
- cluster profile using TopoLVM-backed local persistent volumes
Security invariants
- Never mount
$HOME wholesale.
- Never mount
~/.ssh, ~/.gnupg, browser profiles, keychains, cloud credentials, token stores, or password stores by default.
~/dev is allowed only as an explicit repo/code root and should support repo-level allowlists.
~/Documents/SourceOS/agent-output is the default write area for generated documents and reports.
- Photos/Notes/Reminders/Voice Memos/TextEdit-style bridges are future app doors, not default raw filesystem mounts.
- Every mount launch emits a fingerprint/evidence record containing host path, container path, access mode, policy hash, and git ref where applicable.
Acceptance criteria
- Schemas and examples validate under existing SourceOS schema conventions.
- AgentMachineProfile can reference LocalDataPlane and MountPolicy ids.
- TopoLVMPlacementProfile references the same mount semantics without forcing Kubernetes assumptions into Mac/Windows local mode.
- README/schema catalog updated.
Non-goals
- Do not implement Podman mount commands here.
- Do not implement Kubernetes controllers here.
- Do not add real local paths beyond safe example placeholders.
- Do not add secrets, tokens, credentials, or user-specific values.
Context
SourceOS Agent Machine needs a local data/mount plane that works first on Mac/Windows/Linux Podman workspaces and later maps cleanly to TopoLVM-backed local persistent volumes in cluster mode.
The immediate user convention is:
~/devis the shared code/repository mount root.~/Documents/SourceOS/agent-outputis the shared agent document output root.TopoLVM should become the cluster-local disk backend analogue for the same mount contract: local disk stays local, placement respects node topology, and mounts are explicit capabilities.
Scope
Add v0 schemas/examples for:
AgentMachineLocalDataPlaneAgentMachineMountPolicyTopoLVMPlacementProfileExamples:
~/devand~/Documents/SourceOS/agent-outputSecurity invariants
$HOMEwholesale.~/.ssh,~/.gnupg, browser profiles, keychains, cloud credentials, token stores, or password stores by default.~/devis allowed only as an explicit repo/code root and should support repo-level allowlists.~/Documents/SourceOS/agent-outputis the default write area for generated documents and reports.Acceptance criteria
Non-goals