Skip to main content

KubeVirt

Enterprise
Available in these plansFreeDevProdScale
KubeVirt Integration
Supported Configurations
Running the control plane as a container with:
Enterprise-Only Feature

This feature is an Enterprise feature. See our pricing plans or contact our sales team for more information.

vCluster offers the possibility to reuse a KubeVirt installation of the host cluster within the vCluster. vCluster is able to sync KubeVirt resources from the vCluster to the host cluster and allows you to use virtctl within the vCluster.

Enable KubeVirt Integration

To enable the integration, use the following configuration inside your vcluster.yaml:

integrations:
kubeVirt:
enabled: true
# If you want vCluster to sync data volumes as well.
#sync:
# dataVolumes:
# enabled: true

Next you can deploy and use KubeVirt resources inside the vCluster which will be synced to the host cluster.

Sync DataVolumes

In order to sync KubeVirt DataVolumes, please make sure to install the KubeVirt Containerized Data Importer. Then enable the following setting in the vcluster.yaml:

integrations:
kubeVirt:
enabled: true
sync:
dataVolumes:
enabled: true

After vCluster restarts, the DataVolumes CRD should be visible within the vCluster.

Limitations

vCluster currently only supports syncing and using the following resources inside the vCluster:

  • VirtualMachine
  • VirtualMachineInstance
  • VirtualMachinePool
  • VirtualMachineClone
  • DataVolume (needs to be enabled via integrations.kubeVirt.sync.dataVolumes.enabled)

The following virtctl commands are supported:

  • virtctl start
  • virtctl stop
  • virtctl migrate
  • virtctl ssh
  • virtctl vnc
  • virtctl pause
  • virtctl unpause
  • virtctl scp
  • virtctl restart
  • virtctl port-forward
  • virtctl console

Config reference

kubeVirt required object

KubeVirt reuses a host kubevirt and makes certain CRDs from it available inside the vCluster

enabled required boolean false

Enabled signals if the integration should be enabled

apiService required object

APIService holds information about where to find the virt-api service. Defaults to virt-api/kubevirt.

service required object

Service is a reference to the service for the API server.

name required string

Name is the name of the host service of the apiservice.

namespace required string

Namespace is the name of the host service of the apiservice.

port required integer

Port is the target port on the host service to connect to.

webhook required object

Webhook holds configuration for enabling the webhook within the vCluster

enabled required boolean true

Enabled defines if this option should be enabled.

sync required object

Sync holds configuration on what resources to sync

dataVolumes required object

If DataVolumes should get synced

enabled required boolean false

Enabled defines if this option should be enabled.

virtualMachineInstanceMigrations required object

If VirtualMachineInstanceMigrations should get synced

enabled required boolean true

Enabled defines if this option should be enabled.

virtualMachineInstances required object

If VirtualMachineInstances should get synced

enabled required boolean true

Enabled defines if this option should be enabled.

virtualMachines required object

If VirtualMachines should get synced

enabled required boolean true

Enabled defines if this option should be enabled.

virtualMachineClones required object

If VirtualMachineClones should get synced

enabled required boolean true

Enabled defines if this option should be enabled.

virtualMachinePools required object

If VirtualMachinePools should get synced

enabled required boolean true

Enabled defines if this option should be enabled.