KubeVirt VMI Phase Lifecycle

KubeVirt VMI Phase Lifecycle A lifecycle diagram generated by Archify. 01 / VMI phases 02 / Detours and exits 03 / Outcomes Pending · no launcher pod yet · VMI phases · virt-controller 01 Pending no launcher pod yet virt-controller Scheduling · pod created · VMI phases · virt-controller 02 Scheduling pod created virt-controller Scheduled · pod ready, node set · VMI phases · handoff 03 Scheduled pod ready, node set handoff Running · domain running · VMI phases · virt-handler 04 Running domain running virt-handler Succeeded · domain shut down · VMI phases · final 05 Succeeded domain shut down final WaitingForSync · target not ready · Detours and exits · recoverable WaitingForSync target not ready recoverable Failed · pod gone or crashed · Detours and exits · final Failed pod gone or crashed final target pod down target pod exists domain crashed or pod gone Legend start active state waiting terminal success failure / exit

Who owns the phase

  • • virt-controller sets Pending, Scheduling, Scheduled from the launcher Pod (watch/vmi/lifecycle.go)
  • • virt-handler sets Running, Succeeded, Failed from the libvirt domain (virt-handler/vm.go)

WaitingForSync

  • • Migration targets only: no target node label, or target pod down while Scheduling/Scheduled
  • • Returns to Scheduling once the target pod exists; the only non-terminal detour

Failed vs Succeeded

  • • Domain shutdown, saved or snapshot: Succeeded. Crashed or panicked: Failed. Destroyed: Failed if ACPI was available
  • • Pod gone or virt-handler unresponsive (NodeUnresponsive) is Failed from any phase; Unknown is never set