sylve_vm_create
Provision Bhyve VMs from scratch or templates, with automatic RID and VNC port allocation, size parsing, cloud-init validation, and optional dry-run preview.
Instructions
Provision a Bhyve VM from scratch or from a template. Parses sizes like '2G', auto-allocs RID and VNC port, validates cloud-init YAML. Supports dry_run.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | ISO/download UUID or filename. | |
| rid | No | Explicit RID (defaults to next free). | |
| tpm | No | ||
| vnc | No | Enable VNC (default true, allocates a port). | |
| name | No | VM name. | |
| node | No | Target cluster node hostname or UUID. Omit for cluster-wide. | |
| pool | No | ZFS pool for the primary disk. | |
| wait | No | ||
| cores | No | CPU cores (sockets/threads default 1). | |
| count | No | Template mode: number of VMs. | |
| start | No | Start the VM(s) after creation. | |
| config | No | Optional create config dict mirroring 'sylve vm create --file' keys. | |
| memory | No | RAM, e.g. '2G' or '4096M'. | |
| serial | No | ||
| switch | No | Network switch name, or 'none'. | |
| context | No | Named login context from ~/.config/sylve/config.yaml. | |
| dry_run | No | Print the request without creating. | |
| sockets | No | ||
| threads | No | ||
| boot_rom | No | ||
| template | No | Create from a VM template ID or name. | |
| vnc_port | No | ||
| disk_size | No | Primary disk size, e.g. '20G'. | |
| meta_data | No | cloud-init meta-data YAML (inline or path). | |
| start_rid | No | Template mode: first RID. | |
| user_data | No | cloud-init user-data YAML (inline or path). | |
| cloud_init | No | ||
| mac_object | No | Existing MAC object name or ID. | |
| description | No | ||
| name_prefix | No | Template mode: name prefix. | |
| pci_devices | No | ||
| start_order | No | ||
| time_offset | No | ||
| storage_type | No | ||
| vnc_password | No | ||
| wait_timeout | No | ||
| start_at_boot | No | ||
| storage_pools | No | Template mode: SOURCE_ID=POOL mappings. | |
| network_config | No | cloud-init network-config YAML (inline or path). | |
| qemu_guest_agent | No | ||
| switch_emulation | No | ||
| cloud_init_prefix | No | ||
| storage_emulation | No | ||
| extra_bhyve_options | No | ||
| rewrite_cloud_init_identity | No |