Skip to content
This repository has been archived by the owner on Sep 27, 2018. It is now read-only.
/ v2v-job Public archive

A job to allow importing a VM from a support virt-v2v source into KubeVirt.

Notifications You must be signed in to change notification settings

kubevirt/v2v-job

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

v2v for Kubevirt

A job to allow importing a VM from a support virt-v2v source into KubeVirt.

There are some constraints on the VM:

  • Single NIC
  • Single attached disk

Example

OpenShift (WIP)

$ oc adm policy add-scc-to-user privileged system:serviceaccount:default:kubevirt-privileged
$ oc process --local -f manifests/template.yaml \
    -p SOURCE_TYPE=ova \
    -p SOURCE_NAME=http://192.168.42.1/my.ova \
  | oc create -f -
$ oc get jobs
$ oc get pods

Kubernetes

$ oc process --local -f manifests/template.yaml \
    -p SOURCE_TYPE=ova \
    -p SOURCE_NAME=http://192.168.42.1/my.ova \
  | kubectl create -f -
$ kubectl get jobs
$ kubectl get pods

Alternatively the job manifest can be used directly, but you'll need to modify it in order to adapt it to your environment:

# Edit manifests/job.yaml
$ kubectl create -f manifests/job.yaml
$ kubectl logs -f v2v-kw443

Storage

When using ceph-cinder-demo we need to run a command to set default flag for storageClass

$ oc.sh patch storageclass standalone-cinder -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

Design

Pretty straight forward:

  1. Run virt-v2v with -o local inside a container
  2. Create a KubeVirt VM definition from the resulting domxml
  3. Create a PVC and attach it to a pod
  4. Send the disk to the pod with PVC to populate the PVC, and the VM in the cluster