Skip to main content

Roadmap: Cilium endpoints, CH Windows+QGA, KVM density

Three tracks deferred from the host-local production bar. Phase-1 foundations ship in-tree; Phase 2b now enriches CEP views from the Cilium agent HTTP API (no private-map writes). In-tree KVM memory snapshots use the lab-only FLUXKVM1 v2 format (all vCPUs; not Firecracker-compatible).

1. Cilium-native VM endpoints / Hubble​

PhaseDeliverableStatus
1Coexistence mode=cilium; Fabric network.hubble_ui_url + Edge Dataplane Open Hubble link; FluxVM /flows observeDone
2aCiliumEndpoint-shaped objects per VM + Hubble-lite JSON/UI (/v1/network/endpoints, /hubble/*)Done (no Cilium private maps) β€” hubble-lite.md
2bCiliumEndpoint + SecurityIdentity from Cilium agent β€” no private map hacksDone (agent HTTP GET enrich; soft-fail β†’ fluxvm-hash)
3Hubble SID attribution for VM traffic; optional flow export bridgeDone (F1: hubble observe overlays CEP/agent SID; CT samples remain Fabric)

Non-goals forever-as-fake: embedding Hubble UI inside Fabric; writing Cilium private maps from FluxVM.

2. Cloud Hypervisor Windows + QGA​

PhaseDeliverableStatus
1CH Windows boot: hyperv: true β†’ kvm_hyperv=on, UEFI firmware, examples/windows-ch.jsonDone
2Host↔guest day-2 channel on CH (--serial socket=qga.sock)Done (host path) β€” ch-windows-qga.md
3fluxctl qga … on CH when the guest speaks QGA on that serialDone at host path; guest must run qemu-ga on COM/serial. Named virtio-serial org.qemu.guest_agent.0 remains QEMU-only

QEMU + examples/windows-qga.json remains the GA QGA path.

3. In-tree KVM density (fluxvm_engine=kvm)​

PhaseDeliverableStatus
1Bench harness + docs: FC = prod density, kvm = labDone (scripts/bench-sandbox.sh, benchmarks)
2Real virtio-blk MMIO + rootfs attach (cfg.disk); cmdline virtio_mmio.device slotsDone
3alinux-loader + platform + virtio-blk + console stdin; lab userspace / stdin smokeDone (FLUXVM_USERSPACE_OK / FLUXVM_STDIN_OK)
3bReal in-tree KVM pause/resume (park vCPU; no KVM_RUN while paused)Done (scripts/test-kvm-pause-smoke.sh)
3cMemory snapshot / restore + warm-pool density claims on kvmDone (lab FLUXKVM1 v2: all vCPUs + watermark; not FC-compatible) β€” scripts/test-kvm-snapshot-smoke.sh
3dFLUXVM_KVM_LOCK_MEM=1 (MAP_POPULATE + mlock)Done β€” kvm-density.md
3eFC/CH parity: TSS/MSRs/FPU/LAPIC/serial irqfd; vsock/balloon/rng; ACPI; jailer; auto mmio cmdlineDone β€” guests reach /sbin/init

Default fluxvm_engine=firecracker stays the production sandbox engine. In-tree KVM pause + FLUXKVM1 v2 memory snapshot restore support lab warm-pool packing; Firecracker remains the production snapshot format.

Ranked follow-ups (virtio live-state, vhost bind, Sentinel Set 16 candidates, Hubble SID): NEXT-FEATURES.md.