CLIVirtual Machines
hudl vm create <name>
Provision a new virtual machine from an image and flavor.
Provision a new virtual machine from an image and flavor. The command creates a boot volume from the specified image, launches the instance, and optionally assigns a public IP.
Usage
hudl vm create <name> [flags]Flags
| Flag | Description |
|---|---|
--flavor <id> | (required) Flavor (size) ID that defines vCPUs, RAM, and disk. |
--image <id> | Image ID to boot from. Omit when using --snapshot. |
--boot-disk-size <gb> | (required) Boot volume size in GB (10--64). |
--key <name> | SSH keypair name to inject into the instance. |
--additional-volume <gb> | Attach an extra data volume of this size (min 8 GB). |
--sg <name> | Security group to apply. Repeat for multiple groups. |
--user-data <path> | Path to a cloud-init file for first-boot configuration. |
--public-ip | Assign a public floating IP to the instance. |
--public-internet | Allow outbound internet access from the instance. |
--snapshot <id> | Boot from an existing volume snapshot instead of an image. |
--tag <key=value> | Tag the resource. Repeat for multiple tags. |
Common flags
| Flag | Description |
|---|---|
--region <code> | Override the active region for this call only. |
--workspace <slug> | Override the active workspace for this call only. |
-o, --output | Output format: table (default), json, yaml, wide, name. |
--idempotency-key <key> | Attach an idempotency key so retries are safe. |
Examples
Create a basic VM with a public IP:
hudl vm create web-server-01 \
--flavor c1.medium \
--image ubuntu-22.04 \
--boot-disk-size 20 \
--key my-keypair \
--public-ipCreate a VM with cloud-init, extra storage, and security groups:
hudl vm create data-processor \
--flavor c1.xlarge \
--image debian-12 \
--boot-disk-size 40 \
--additional-volume 64 \
--key deploy-key \
--sg allow-ssh \
--sg allow-https \
--user-data ./cloud-init.yaml \
--public-ip \
--public-internet \
--tag env=production \
--tag team=dataBoot from a snapshot in a specific region:
hudl vm create restored-db \
--flavor c1.large \
--snapshot 8a3f2e1b-4c5d-6e7f-8a9b-0c1d2e3f4a5b \
--boot-disk-size 32 \
--region eu2API reference
This command calls POST /instances under the hood. See the full request and response schema in the API reference.