Skip to main content

backend support

Corral can show several contexts at once. A context is a named connection to one backend; changing the default context changes only where an unqualified command goes and never hides the rest of the fleet.

Capabilitylocal QEMUKubeVirtIncuslibvirtProxmox VECorral peer
Aggregate inventoryyesyesyesyesyesyes
Start, stop, deleteyesyesyesyesyesrelayed
Createyesyesyesyesyesremote API
SSHdirect when address is knowndirect, then console transportincus exec/networkdirect when address is knowndirect when address is knowndirect first, relay fallback
Browser consoleVNCvirtctl VNCterminalVNC/virt-viewertickets implementeddirect first, relay fallback
Snapshots, migration, hotplugbackend-limitedyesnot yet unifiednot yet unifiedyesadvertised by remote
Backend doctoryesyesyesyesyestracked in #135

Use corral context get, corral context use NAME, and the persistent --context NAME / --backend NAME flags. Bare VM names work only when unique; scripts should use the canonical ID printed by corral list.

First-party workflow plugins have a separate support matrix in first-party-plugins.md. Plugins must declare their supported backends; β€œinstalled” is not evidence that a workflow works on every inventory target.

Tailscale is a first-class endpoint discovery/exposure option, not a required network. KubeVirt ingress remains implementation-agnostic. Federation attempts advertised/direct guest endpoints first and uses Corral-to-Corral HTTP and WebSocket relay only when the network cannot reach the guest directly.