Helpful Links:
https://github.com/kubevirt/containerized-data-importer/blob/main/doc/datavolumes.md
https://docs.openshift.com/container-platform/4.11/virt/virtual_machines/cloning_vms/virt-cloning-vm-disk-into-new-datavolume.html
https://cloud.redhat.com/blog/creating-default-os-images-to-auto-clone-in-openshift-virtualization
https://kubevirt.io/user-guide/virtual_machines/disks_and_volumes/
Create DataVolume NFS:
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
name: clone-percap-postgres-vm-83058-l9q6f
namespace: percap
spec:
source:
pvc:
name: import-percap-postgres-vm-83058-l9q6f
namespace: percap
pvc:
storageClassName: freenas-nfs-csi
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 250Gi
Create DataVolume iSCSI:
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
name: clone-percap-postgres-vm-83058-l9q6f
namespace: percap
spec:
source:
pvc:
name: import-percap-postgres-vm-83058-l9q6f
namespace: percap
pvc:
storageClassName: freenas-iscsi-csi
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 250Gi
Watch Progress:
[dave@lenovo ocp]$ oc get dv
NAME PHASE PROGRESS RESTARTS AGE
clone3-percap-postgres-vm-83058-l9q6f CloneInProgress 48.33% 5m55s
import-percap-postgres-vm-83058-l9q6f Succeeded 100.0% 9d
Make a VM from Cloned Drive:
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: postgres-clone
namespace: percap
spec:
running: false
template:
spec:
domain:
clock:
timer: {}
timezone: UTC
cpu:
cores: 8
sockets: 1
devices:
disks:
- disk:
bus: virtio
name: vol-0
inputs:
- bus: virtio
name: tablet
type: tablet
interfaces:
- masquerade: {}
model: virtio
name: net-0
ports:
- port: 5432
features:
acpi: {}
firmware:
bootloader:
bios: {}
machine:
type: q35
resources:
requests:
memory: 32Gi
networks:
- name: net-0
pod: {}
volumes:
- dataVolume:
name: clone-percap-postgres-vm-83058-l9q6f
name: vol-0