Skip to main content
Version: v0.25

KubeVirt

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.