RudderVirt

#Reference

#Build phase progression

stateDiagram-v2 [*] --> Pending Pending --> Networking Networking --> Building Building --> CapturingDisks CapturingDisks --> TemplateProvisioning TemplateProvisioning --> Succeeded Pending --> Failed Networking --> Failed Building --> Failed CapturingDisks --> Failed TemplateProvisioning --> Failed

#Per-VM phase progression

stateDiagram-v2 [*] --> Pending Pending --> SourceImporting SourceImporting --> Booting Booting --> BootCommand: if bootCommand set Booting --> Provisioning: otherwise BootCommand --> Provisioning Provisioning --> ShuttingDown ShuttingDown --> DiskCaptured DiskCaptured --> Succeeded Pending --> Failed SourceImporting --> Failed Booting --> Failed Provisioning --> Failed ShuttingDown --> Failed

#Boot command tokens

CategoryTokens
Whitespace<enter>, <return>, <tab>, <space>, <spacebar>
Editing<bs>, <backspace>, <del>, <delete>
Navigation<up>, <down>, <left>, <right>, <home>, <end>, <pageUp>, <pageDown>, <insert>
Function<f1><f12>
Escape<esc>, <escape>
Wait<wait> (1s), <wait5>, <wait20>, <waitNs>
Modifiers<leftCtrlOn>, <leftCtrlOff>, <leftAltOn>, <leftAltOff>, <leftShiftOn>, <leftShiftOff>, plus right variants

#Template variables (boot commands)

VariableValue
{{ .HTTPIP }}IP of the build's HTTP file server (visible on the VM's first NIC subnet)
{{ .HTTPPort }}Port of the HTTP server

#Top-level spec fields

FieldTypeNotes
vmslistrequired, at least one
fileslistnamed files referenced by floppy/httpDirectory/file provisioners
networkobjectoptional VPC + subnet declarations
httpDirectoryobjectfiles to serve over HTTP during boot
buildOverridesobjectsettings active only during the build
timeoutduration stringdefault 30m
retriesintdefault 0
isoCacheTTLduration stringhow long imported ISOs are cached, default 24h

#Per-VM spec fields

FieldTypeNotes
namestringrequired, DNS-label form
sourceobjectrequired, exactly one of url/containerDisk/buildRef/blank
resourcesobjectcpu (int), memory (Quantity); defaults 2 / 4Gi
diskslistfirst disk is boot disk; if omitted, a single 20Gi virtio disk is created
communicatorobjectSSH config
cloudInitobjectrequired for cloud-image sources
nicslistNIC assignments, omit to get a default NIC on the auto subnet
bootCommandlist of stringsVNC keystrokes typed before SSH attempts
efiFirmwareobjectUEFI boot configuration
provisionerslistordered build steps
isoslistISO images to attach as cdrom
floppyobjectfiles to put on a virtual floppy

#Disk fields

FieldTypeNotes
namestringrequired
sizeQuantityrequired (e.g. "25Gi")
busstringvirtio (default), scsi, sata

#NIC fields

FieldTypeNotes
namestringbecomes interface name in guest
subnetstringrequired; references a subnet in network
ipstringoptional static IP
macstringoptional static MAC
modelenume1000 (default), virtio, e1000e, rtl8139, pcnet, ne2k_pci

#Subnet fields

FieldTypeNotes
namestringrequired
vpcstringoptional; defaults to auto-VPC
cidrstringrequired, IPv4 CIDR
dhcpbooldefault true
dnsstringcomma-separated DNS server IPs

#VPC fields

FieldTypeNotes
namestringrequired
internetboolenables NAT egress + public DNS, default false