Skip to content

feat(backend-kubernetes): add Pod options and identity policy - #9

Draft
tee8z wants to merge 1 commit into
mainfrom
dev-2884-sandbox-pod-options
Draft

tee8z wants to merge 1 commit into
mainfrom
dev-2884-sandbox-pod-options

Conversation

@tee8z

@tee8z tee8z commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

The Kubernetes provider creates one bare Pod per agent with a fixed shape. Remote agent sessions need placement on dedicated workers, storage bounds, an absolute lifetime, and proof that the agent and owner keys are the approved pair. This PR adds two optional provider_config objects for that. Omitted options keep the original Pod shape and create-intent fingerprint.

provider_config field Effect
pod_options.node_selector, pod_options.tolerations Schedule only on matching, tainted nodes
pod_options.workspace_size_limit emptyDir size limit for the workspace
pod_options.ephemeral_storage_request, pod_options.ephemeral_storage_limit Reserve and bound writable storage and logs
pod_options.active_deadline_seconds Positive absolute Pod lifetime, including startup
pod_options.setup_pending Expose the server-assigned Pod UID to an owner setup gate
identity_policy.agent_pubkey, identity_policy.owner_pubkey Approved key pair, checked before any cluster access
  • Configured pod_options join the create-intent fingerprint, so a changed option is detected.
  • identity::check refuses an owner key used as the agent, an agent key that differs from policy, a missing or invalid owner attestation, and a launch owner that differs from the verified owner.
  • --check-identity runs the same checks locally. It returns only the public Pod name or a sanitized refusal.

Stack

Position 2 of 20 in the DEV-2884 Buzz stack. Base: #8. Next: #10.

Validation

Run on this layer's commit, for buzz-backend-kubernetes and buzz-acp:

  • cargo fmt --check: pass.
  • cargo clippy --all-targets -- -D warnings: pass.
  • cargo test -p buzz-backend-kubernetes: 171 passed, 0 failed.
  • cargo test -p buzz-acp: 1,078 passed, 3 ignored, 0 failed.

Limits

  • No live cluster is exercised; scheduling, tolerations, and storage eviction are untested here.
  • Buzz AGENTS.md requires a human to test the change before it leaves draft.

@tee8z
tee8z added this pull request to stack #22 October 19, 2026 20:56
@tee8z tee8z self-assigned this Oct 19, 2026
Base automatically changed from dev-2884-coderabbit to main October 19, 2026 23:28
Add optional structured pod_options (node selector, tolerations,
workspace and ephemeral storage bounds, absolute deadline, and a
downward-API setup Pod UID). Configured options join the create-intent
fingerprint; omitted options keep the original Pod shape and intent.

Add an optional identity_policy that checks the agent key, owner
attestation, and launch owner before any cluster access, and a local
--check-identity preflight that returns only the public Pod name or a
sanitized refusal.

Signed-off-by: Tee8z <tee8z@protonmail.com>
@coderabbitai

coderabbitai Bot commented Oct 19, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@tee8z
tee8z force-pushed the dev-2884-sandbox-pod-options branch from 6ce568e to 04753a7 Compare October 19, 2026 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant