Skip to content

Instantly share code, notes, and snippets.

@singlecheeze
Last active October 4, 2022 02:37
Show Gist options
  • Save singlecheeze/a1556c98b8433f3788141abc8be4fc64 to your computer and use it in GitHub Desktop.
Save singlecheeze/a1556c98b8433f3788141abc8be4fc64 to your computer and use it in GitHub Desktop.

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

image image

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment