Huddle01 Cloud
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

FlagDescription
--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-ipAssign a public floating IP to the instance.
--public-internetAllow 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

FlagDescription
--region <code>Override the active region for this call only.
--workspace <slug>Override the active workspace for this call only.
-o, --outputOutput 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-ip

Create 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=data

Boot 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 eu2

API reference

This command calls POST /instances under the hood. See the full request and response schema in the API reference.