Plan / Interface: per-session Kata VM isolation for Kubernetes execution - #2052
Open
tgrunnagle wants to merge 4 commits into
Open
tgrunnagle wants to merge 4 commits into
tgrunnagle wants to merge 4 commits into
Conversation
Add the Plan / Interface contract and ADR 0373 for the follow-up to native Kubernetes execution: one Kata (kata-clh) VM per execution environment, no host command execution in the mecak8s Pod while execution is enabled, VM stop with retained PVC when the last reference is removed, the parent plan's five pending journeys under Kata, and a Kind+Kata KVM CI lane. The provider gRPC, engine, Harness, and tool contracts are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stage: Plan / Interface
This PR adds the acceptance plan
docs/acceptance/kubernetes-session-vm-isolation.mdand ADR 0373. It follows the native Kubernetes execution plan and ADR 0364. Merging this PR approves the contract. It contains no implementation.Relates to the native Kubernetes execution work (#1579, #1614).
Plan summary
Work classification: Architectural. It changes the execution isolation boundary from a shared node kernel to one VM per environment. It also changes the retained-environment lifecycle and removes every path for executing commands on the mecak8s host. The delivery path is Split.
The plan has five scenarios:
kata-clh. Each environment's executor gets a distinct guest kernel andboot_id. The controller verifiesruntimeClassNameandspec.overhead, and fails closed when the sandbox handler is unavailable.--execution-enabled:CommandRunneron any placement path.--shellis rejected at startup.hooks:are refused at the single hook-runner construction point. This also covers any session-scoped definitions added later.type: RetireEnvironment). The VM stops and the PVC is kept. The stop is admitted from not-Ready, never-provisioned and post-operation states, while FenceUnknown and active run claims are still respected. The reference RPCs keep their existing classifications.task e2e:k8s:execution:kataand CI jobexecution-kata-e2erun onubuntu-24.04with KVM and fail closed without/dev/kvm. The existingrunclanes remain the macOS path.Unchanged contracts: the
ExecutionProviderServiceprotobuf, the engine and Harness APIs, tool schemas, the profile schema, chart values and the CRD schema.Out of scope: GitHub/Git credentials, the coding workload image, hostname egress, warm pools and resumable stopped environments.
Human decisions recorded
All decisions are checked in the plan:
runc.kata-clhas the hypervisor.Retired.--shellis rejected.Review notes
Retired. Every deleted session keeps a capacity slot and a PVC until an operator callsDeleteRetiredEnvironment.Checks
check-acceptance-plan.sh: passed.check-acceptance-plan-test.sh: passed.task docs: passed (0 broken links, 0 unreachable).🤖 Generated with Claude Code