-
Epic
-
Resolution: Done
-
Minor
-
None
-
None
-
None
In MTV 2.5 we've added the ability to export a VM from a given OCP cluster to another OCP cluster (OCP-to-OCP migration).
The OpenShift Virtualization guys are also interested in the ability to export a VM from a given OCP cluster to a place, other than another OCP cluster, that can store the VM like an image registry or an external drive.
This epic is about reusing the work we did in MTV 2.5 on import OVAs to provide a way to export a VM from a given OCP cluster, with minimal changes in MTV. That means to export a VM from a given cluster to an NFS share (but possibly any storage that we could import from).
There are several changes we would need to make:
- Make the OVA provider also a destination provider
- Mount the NFS in a writable mode to a pod that writes the OVA
There are more things to consider:
- How to structure the NFS (e.g., placing VMs under folders that name after their namespace)
- Producing a complete OVF will take a significant effort, we can create a minimal OVF to make the OVA consumable by other platforms / virt-v2v
- Whether to put the VM configuration in KubeVirt inside the OVA, this can simplify imports of such OVAs to OCP
- The format of the disks should ideally preserve sparseness. Practically this means either QCOW2 or VMDK.
The arguments for VMDK are:
(1) Better? portability
(2) Potential import with virt-v2v
The arguments for QCOW2 are:
(1) Alignment with oVirt OVAs (maybe we can reuse the Ansible script we use in oVirt)
(2) Make it more obvious that the VM doesn't come from VMware
Converting the VM into a template (virt-sysprep) during export is out-of-scope.