#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
| Category | Tokens |
|---|---|
| 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)
| Variable | Value |
|---|---|
{{ .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
| Field | Type | Notes |
|---|---|---|
vms | list | required, at least one |
files | list | named files referenced by floppy/httpDirectory/file provisioners |
network | object | optional VPC + subnet declarations |
httpDirectory | object | files to serve over HTTP during boot |
buildOverrides | object | settings active only during the build |
timeout | duration string | default 30m |
retries | int | default 0 |
isoCacheTTL | duration string | how long imported ISOs are cached, default 24h |
#Per-VM spec fields
| Field | Type | Notes |
|---|---|---|
name | string | required, DNS-label form |
source | object | required, exactly one of url/containerDisk/buildRef/blank |
resources | object | cpu (int), memory (Quantity); defaults 2 / 4Gi |
disks | list | first disk is boot disk; if omitted, a single 20Gi virtio disk is created |
communicator | object | SSH config |
cloudInit | object | required for cloud-image sources |
nics | list | NIC assignments, omit to get a default NIC on the auto subnet |
bootCommand | list of strings | VNC keystrokes typed before SSH attempts |
efiFirmware | object | UEFI boot configuration |
provisioners | list | ordered build steps |
isos | list | ISO images to attach as cdrom |
floppy | object | files to put on a virtual floppy |
#Disk fields
| Field | Type | Notes |
|---|---|---|
name | string | required |
size | Quantity | required (e.g. "25Gi") |
bus | string | virtio (default), scsi, sata |
#NIC fields
| Field | Type | Notes |
|---|---|---|
name | string | becomes interface name in guest |
subnet | string | required; references a subnet in network |
ip | string | optional static IP |
mac | string | optional static MAC |
model | enum | e1000 (default), virtio, e1000e, rtl8139, pcnet, ne2k_pci |
#Subnet fields
| Field | Type | Notes |
|---|---|---|
name | string | required |
vpc | string | optional; defaults to auto-VPC |
cidr | string | required, IPv4 CIDR |
dhcp | bool | default true |
dns | string | comma-separated DNS server IPs |
#VPC fields
| Field | Type | Notes |
|---|---|---|
name | string | required |
internet | bool | enables NAT egress + public DNS, default false |