This repository has been archived by the owner. It is now read-only.
A job to allow importing a VM from a support virt-v2v source into KubeVirt.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin Make sure that job name contains vm name Apr 3, 2018
images/v2v-job Make sure that job name contains vm name Apr 3, 2018
manifests Job udate Mar 20, 2018
.gitignore
Makefile Job udate Mar 20, 2018
README.md Job udate Mar 20, 2018

README.md

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