docs(adr): propose ADR-0008 pluggable execution environments#1460
docs(adr): propose ADR-0008 pluggable execution environments#1460lyarwood wants to merge 1 commit intoambient-code:mainfrom
Conversation
Propose extending the operator to support alternative execution environments beyond Kubernetes Pods. Introduces an ExecutionEnvironment interface with KubeVirt VM as the first non-pod implementation, enabling e2e testing workflows that require nested containers or full OS environments. Assisted-By: Claude <noreply@anthropic.com>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✅ Deploy Preview for cheerful-kitten-f556a0 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Summary
ExecutionEnvironmentinterface with KubeVirt VM as the first non-pod implementationScope of this ADR
This ADR covers the full picture: the
ExecutionEnvironmentabstraction, registry schema changes (executionKind+vmConfig), operator dispatch, KubeVirt VM lifecycle, cloud-init bootstrap, and networking. I'm happy to break it out into several smaller ADRs if that's easier to review, for example:ExecutionEnvironmentinterface from the monolithic pod builder (pure refactor, no new functionality)The core idea is that the upper layers (PlatformBridge, backend AG-UI proxy, frontend) are already execution-agnostic — the work is isolated to the operator and the agent registry.
Context
See kubevirt-ai-helpers: Future Work — In-Session Eval Testing for the motivating use case.
Feedback welcome
This is a suggestion from an external contributor — I'd appreciate any feedback on:
ExecutionEnvironmentinterface abstraction makes sense at the operator levelexecutionKindonAgentRuntimeSpecis the right place for runtime selection vs a CRD-level field