Skip to content

KubeVirt & Harvester Plugin

Coriolis provides agentless integration with supported virtualization platforms by running the platform plugin directly on the Coriolis Appliance. This architecture eliminates the need to deploy agents on source or destination platforms and simplifies connectivity and setup.

Coriolis has been validated for Harvester environments from version 1.3 through 1.8.0. This compatibility also extends to SUSE Virtualization, which is based on the same underlying platform capabilities.

For a VMware to SUSE Virtualization migration, here is a representation of the steps involved:

KubeVirt destination cloud

For detailed information regarding KubeVirt/Harvester capabilities and steps performed while using it as a destination cloud, please check the following page:

KubeVirt/Harvester as a destination cloud

KubeVirt Endpoint Connection Parameters

To connect to Kubevirt to perform migration to it, the following connection parameters are required:

A valid kubeconfig YAML needs to be passed to the Coriolis endpoint. In a traditional KubeVirt setup, the kubeconfig can be found at the ~/.kube/config location in your environment.

If using Harvester, a kubeconfig can be generated for the logged-in user by accessing the Harvester UI’s Support page and clicking Download KubeConfig, as shown below.

KubeVirt platform specifics

Supported Actions:Migration Destination – Replica DestinationComments
Plugin identifierkubevirtIdentifies the plugin Used for the –provider CLI parameter
Credentials neededkubeconfig that mentions either user TLS certificates or generated tokenNecessary credentials to give to Coriolis
Deployment requirementsCoriolis worker component(s) need network access to the Kubernetes and KubeVirt APIsCoriolis deployment and environment connectivity requirements
DRaaS source requirementsKubevirt is not currently supported as a DRaaS sourceRequirements to use the replica export (DRaaS source) features
Instance identification schemeNames must be uniqueHow instances to migrate/replicate are identified on a cloud handled by the plugin
Network identification schemeNames of VM NetworksHow the plugin identifies networks. Required for the network_map field of the –destination-environment

KubeVirt migration user required permissions

This table will describe the minimum role requirements of a migration user to bind to migrate instances to a destination KubeVirt platform:

Role TypeResourceAccess LevelAPI Group
ClustervirtualmachineimagesReadharvesterhci.io
volumesnapshotclassesReadsnapshot.storage.k8s.io
storageclassesReadstorage.k8s.io
namespacesRead
network-attachment-definitionsReadk8s.cni.cncf.io
customresourcedefinitionsReadapiextensions.k8s.io
NamespacepersistentvolumeclaimsRead/Write
podsRead/Write
virtualmachineinstancesRead/Writekubevirt.io
volumesnapshotsRead/Writeapiextensions.k8s.io
volumesnapshots/statusReadapiextensions.k8s.io
virtualmachinesRead/Writekubevirt.io
virtualmachines/startRead/Writesubresources.kubevirt.io