#Sources
Every VM needs exactly one source. Pick whichever fits your situation.
#source.url
Pull a disk image from any HTTP/HTTPS URL. Best for cloud images (qcow2 from Debian, Ubuntu, Fedora, Rocky, AlmaLinux, etc.).
source:
url: 'https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2'
The URL is fetched once per build. Pin to a specific date or release if you need reproducibility (/bookworm/20250214-2056/ instead of /bookworm/latest/).
#source.blank + isos
Empty disk; you install the OS from an ISO. Required for Windows and any Linux distro that doesn't ship a cloud image.
source:
blank: true
isos:
- url: 'https://cdimage.debian.org/cdimage/.../debian-12.9.0-amd64-netinst.iso'
checksum: '1257373c706d8c07e6917942736a865dfff557d21d76ea3040bb1039eb72a054'
disks:
- name: rootdisk
size: '25Gi'
checksum is optional but strongly recommended. ISOs are cached by checksum — if you reuse the same ISO across builds, only the first one downloads it.
Disks are capped at 50 GiB.
#source.buildRef (layered builds)
Source from another build's output. The image is whatever the referenced build captured. See Layered builds.
source:
buildRef:
name: base-debian
vmName: builder # required if base build has multiple VMs
#source.containerDisk
Use a container image as a disk. Useful for community-maintained images published in the containerDisk format.
source:
containerDisk: 'quay.io/containerdisks/fedora:39'