vdi epic status
This document records the dependency chain, current implementation state, and hardware/media gating status for the VDI epic (issue #69).
Status Summaryβ
The VDI epic is gated on hardware and media prerequisites (#129 and #132). The core Phase 1 desktop pool primitives (pkg/vdi and cmd/corral-vdi) and supporting platform adapters (pkg/snapshot, pkg/export, pkg/lifecycle, pkg/schedule, pkg/doctor) have landed and are fully covered by unit tests in CI.
Hardware & Media Blockersβ
-
GPU / Device Passthrough (
#129):- Software-rendered desktops are a demonstration, not high-performance VDI.
- Blocked on hosts with spare passthrough-capable devices; binding a GPU to
vfio-pcion a workstation takes its physical display. - CI environment lacks dedicated GPU passthrough devices.
-
Windows Guests (
#132):- Blocked on non-redistributable Windows ISOs and
virtio-windrivers (cannot be hosted in public CI repositories). - Long unattended installation cycles (30β60 minutes) per verification pass.
- Blocked on non-redistributable Windows ISOs and
-
Lifecycle at Pool Scale (
#133):- Partially unblocked.
pkg/lifecyclehandles canonicalInstanceRefpower operations, andpkg/schedulemanages windowed start/stop execution across contexts.
- Partially unblocked.
Landed Primitives & Adaptersβ
- Phase 1 VDI Plugin (
pkg/vdi,cmd/corral-vdi): Static pools, golden VM cloning viakubevirt.Client.Clone, label-based assignment (corral.dev/vdi-pool,corral.dev/vdi-assigned-to), and CLI lifecycle (pool create/list/delete,assign,unassign,connect). - In-Browser RDP Proxy: RDCleanPath proxy supporting IronRDP (ADR-0002 Phase 2).
- Disk Snapshot Adapters (
#134): Multi-backend snapshot/restore/retention inpkg/snapshot. - Export Adapters (
#131): Per-backend disk image export inpkg/export. - Peer Diagnostics (
#135): Multi-site reachability and console routing diagnostics inpkg/doctor.
Roadmap Recommendationβ
Keep issue #69 tracked as an epic pending hardware/media resolution for #129 and #132. pkg/vdi remains active in the codebase for static pool creation and manual assignment.