Skip to content

Instantly share code, notes, and snippets.

@ebuildy
Created January 14, 2026 14:51
Show Gist options
  • Select an option

  • Save ebuildy/e1f3fea6b8fb6fc8d13f6a9bd0aaf941 to your computer and use it in GitHub Desktop.

Select an option

Save ebuildy/e1f3fea6b8fb6fc8d13f6a9bd0aaf941 to your computer and use it in GitHub Desktop.
Download OVA and concert it to qcow2 for kubevirt virtual machine
---
apiVersion: batch/v1
kind: Job
metadata:
name: import-disk
spec:
backoffLimit: 0
template:
spec:
restartPolicy: Never
securityContext:
runAsUser: 100
fsGroup: 65533
seccompProfile:
type: RuntimeDefault
initContainers:
- name: downloader
image: docker.io/curlimages/curl:8.12.0
command:
- sh
- -c
- |
set -ex
echo "Downloading ...."
rm -rf /tmp/*
curl -L -o /tmp/base.ova --cacert /opt/custom-ca/bundle.pem https://XXX/XXXX.ova
ls -alh /tmp
volumeMounts:
- name: tmp
mountPath: /tmp
- name: custom-ca
mountPath: /opt/custom-ca
containers:
- name: importer
image: quay.io/kubevirt/cdi-importer:v1.63.1
command:
- /bin/bash
- -c
- |
set -e
cd /tmp
tar -xvf base.ova
VMDK_FILE=vb-server-disk.vmdk
echo "Converting $VMDK_FILE ..."
qemu-img convert -f vmdk -O qcow2 "$VMDK_FILE" /data/vb_os.qcow2
qemu-img info /data/vb_os.qcow2
ls -lah /data
echo "Done"
volumeMounts:
- name: tmp
mountPath: /tmp
- name: data
mountPath: /data
volumes:
- name: custom-ca
configMap:
name: trust-bundle
- name: tmp
persistentVolumeClaim:
claimName: vm-disk-import-tmp
- name: data
persistentVolumeClaim:
claimName: vm-disk-os
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment