fm compute
Reference for the fm compute command group (auto-generated from fm compute --help).
fm compute
text
Manage compute resources including instances, images, and SSH keys.
Examples:
fm compute instance list
fm compute instance create --name my-vm --flavor c1.general1.medium --image ubuntu-24.04
fm compute image list
fm compute flavor list
Usage:
fm compute [command]
Aliases:
compute, vm
Available Commands:
flavor Manage flavors
image Manage images
instance Manage compute instances
ssh-key Manage SSH keys
Flags:
-h, --help help for compute
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)
Use "fm compute [command] --help" for more information about a command.fm compute flavor
text
Manage compute flavors (instance sizes).
Usage:
fm compute flavor [command]
Aliases:
flavor, flavors, size, sizes
Available Commands:
get Get flavor details
list List flavors
Flags:
-h, --help help for flavor
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)
Use "fm compute flavor [command] --help" for more information about a command.fm compute flavor get
text
Get detailed information about a specific flavor.
Usage:
fm compute flavor get <flavor-name> [flags]
Flags:
-h, --help help for get
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute flavor list
text
List all available flavors.
Usage:
fm compute flavor list [flags]
Flags:
--category string filter by category (general, compute, memory)
--family string Filter by flavor family (e.g. gp, co, mo)
--generation int Filter by flavor generation
-h, --help help for list
--status string Filter by flavor status (preview, active, deprecated, retired)
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute image
text
Manage compute images.
Usage:
fm compute image [command]
Aliases:
image, images
Available Commands:
create Create a custom image from a local disk file
delete Delete a custom image
get Get image details
list List images
update Update a custom image
upload Upload a disk file to an existing queued image
Flags:
-h, --help help for image
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)
Use "fm compute image [command] --help" for more information about a command.fm compute image create
text
Create a custom image (BYOI) and upload its disk file.
The flow is create -> upload -> import: the image record is created first, the
disk file is then uploaded straight to object storage with a short-lived signed
form, and the import converts it. The image id is printed as soon as the image
exists, so an upload that fails later never loses it — resume with
'fm compute image upload <id> --file <path>'.
The import runs asynchronously; use --wait to block until the image is active.
The file is hashed as it is streamed and its SHA-256 printed, so you can compare
it with the checksum the vendor publishes. That digest covers the file as you
sent it. The checksums the platform records for the finished image are not a
substitute: they use different algorithms (MD5 and SHA-512, against the SHA-256
vendors publish), and for a qcow2 they describe the raw image it was converted
into.
Examples:
fm compute image create --name my-debian --file debian-13.qcow2 --os-distro debian --os-version 13 --arch x86_64
fm compute image create --name my-image --file image.raw --disk-format raw --os-distro ubuntu --os-version 24.04 --arch x86_64 --wait
Usage:
fm compute image create [flags]
Flags:
--arch string CPU architecture (x86_64, aarch64) (default "x86_64")
--description string image description
--disk-format string disk format (qcow2, raw) (default "qcow2")
--file string path to the disk file to upload (required)
-h, --help help for create
--min-disk int minimum root disk in GB
--min-ram int minimum memory in MB
--name string image name (required)
--os-distro string OS distro (ubuntu, debian, rocky)
--os-version string OS version (24.04, 13)
--timeout duration how long --wait polls before giving up (default 30m0s)
--wait wait for the import to finish before returning
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute image delete
text
Delete a custom image your tenant owns.
This also frees the image's slot in your custom-image allowance.
An image the storage backend still references cannot be deleted: every instance
disk is a copy-on-write clone of the image it was launched from, so the delete is
refused with 409 until the last of those clones is gone. Delete the instances
launched from the image, then retry — a refusal changes nothing about the image.
An image that is still being imported is refused for a different reason: the
import holds the image for its whole run, so the delete works once the import
FINISHES — run it again then. The platform also expires a STALLED import on its
own and quotes how long that has left, which is the time in the refusal; that
countdown restarts whenever the import makes progress, so a healthy import quotes
about an hour throughout and then goes deletable as soon as it is done. When no
time is quoted, run the delete again shortly, and contact support if it keeps
failing the same way.
Examples:
fm compute image delete img-123
fm compute image delete img-123 --force
Usage:
fm compute image delete <image-id> [flags]
Flags:
--force skip the confirmation prompt
-h, --help help for delete
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute image get
text
Get detailed information about a specific image.
Usage:
fm compute image get <image-id> [flags]
Flags:
-h, --help help for get
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute image list
text
List all available images.
Usage:
fm compute image list [flags]
Flags:
-h, --help help for list
--os-distro string filter by distro (ubuntu, debian, centos)
--os-type string filter by OS type (linux, windows)
--visibility string filter by visibility (public = platform catalogue, private = your own images)
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute image update
text
Update the metadata of a custom image your tenant owns.
Only the flags you pass are changed; the platform catalogue's public images
cannot be updated.
Examples:
fm compute image update img-123 --name my-debian-13
fm compute image update img-123 --min-disk 20 --min-ram 2048
Usage:
fm compute image update <image-id> [flags]
Flags:
--description string new description
-h, --help help for update
--min-disk int minimum root disk in GB
--min-ram int minimum memory in MB
--name string new image name
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute image upload
text
Upload a disk file to an image that was created but never filled.
Use this after a 'fm compute image create' whose upload did not complete, or
whose signed upload form expired. It mints a FRESH form, uploads the file and
starts the import. Minting counts against the hourly upload-form limit, so this
never retries by itself.
Only a queued image can be uploaded to.
Examples:
fm compute image upload img-123 --file debian-13.qcow2
Usage:
fm compute image upload <image-id> [flags]
Flags:
--file string path to the disk file to upload (required)
-h, --help help for upload
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance
text
Manage compute instances (virtual machines).
Usage:
fm compute instance [command]
Aliases:
instance, instances, vm, vms
Available Commands:
console Get instance console URL
create Create an instance
delete Delete an instance
get Get instance details
list List instances
reboot Reboot an instance
resize Resize an instance
security-groups View or replace an instance's security groups
start Start an instance
stop Stop an instance
tags Read and replace an instance's tags
Flags:
-h, --help help for instance
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)
Use "fm compute instance [command] --help" for more information about a command.fm compute instance console
text
Get a console URL for accessing an instance's console.
Usage:
fm compute instance console <instance-id> [flags]
Flags:
-h, --help help for console
--type string console type; only novnc is served by this deployment (default novnc)
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance create
text
Create a new compute instance.
Examples:
fm compute instance create --name my-server --flavor c1.general1.medium --image ubuntu-24.04
fm compute instance create --name web-server --flavor c1.general1.large --image ubuntu-24.04 --ssh-key my-key
fm compute instance create --name db-server --flavor c1.general1.xlarge --image ubuntu-24.04 --vpc vpc-123 --subnet subnet-456
Usage:
fm compute instance create [flags]
Flags:
--console-password string console password for the default OS user (VNC console only; SSH stays key-only)
--flavor string flavor ID or name (required)
-h, --help help for create
--image string image ID or name (required)
--instance-access install the Frostmoln agent for 'fm ssh' (terminal) access
--name string instance name (required)
--security-group strings security group ID(s)
--ssh-key strings SSH key name(s)
--subnet string subnet ID
--tag strings tags in key=value format
--user-data string user data script (or @filename)
--vpc string VPC ID
--zone string availability zone
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance delete
text
Delete a compute instance.
Usage:
fm compute instance delete <instance-id> [flags]
Flags:
--force force delete without stopping
-h, --help help for delete
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance get
text
Get detailed information about a specific instance.
Usage:
fm compute instance get <instance-id> [flags]
Flags:
-h, --help help for get
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance list
text
List all compute instances in the current region.
Usage:
fm compute instance list [flags]
Flags:
-h, --help help for list
--status string filter by status (running, stopped, etc.)
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance reboot
text
Reboot a compute instance.
Usage:
fm compute instance reboot <instance-id> [flags]
Flags:
--force force reboot (hard reboot)
-h, --help help for reboot
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance resize
text
Resize an instance to a new flavor (instance size).
Examples:
fm compute instance resize inst-123 --flavor c1.general1.large
fm compute instance resize inst-123 --flavor c1.general1.xlarge
Usage:
fm compute instance resize <instance-id> --flavor <new-flavor> [flags]
Flags:
--flavor string new flavor ID or name (required)
-h, --help help for resize
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance security-groups
text
View (get) or replace (set) the security groups attached to an instance, by Neutron security-group ID.
Usage:
fm compute instance security-groups [command]
Aliases:
security-groups, sg
Available Commands:
get Show an instance's security groups
set Replace an instance's security groups
Flags:
-h, --help help for security-groups
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)
Use "fm compute instance security-groups [command] --help" for more information about a command.fm compute instance security-groups get
text
Show an instance's security groups
Usage:
fm compute instance security-groups get <instance-id> [flags]
Flags:
-h, --help help for get
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance security-groups set
text
Replace an instance's security groups in place with exactly the given set
(replace semantics — any security group not listed is removed).
--security-group takes security-group IDs (UUIDs), NOT the names shown by
'fm compute instance get'. List IDs with 'fm network security-group list' or
'fm compute instance security-groups get <id>'.
By default the set is applied UNIFORMLY across every network port of the
instance. For a multi-NIC instance whose ports need DIFFERENT sets, target a
single port with --port <port-id> (the port IDs are shown by
'fm compute instance security-groups get <id>' when the ports differ); the
other ports are left untouched.
Use --clear to remove ALL security groups (leaves the port(s) on the VPC's
default-drop — typically no inbound access). The change is applied asynchronously.
Examples:
fm compute instance security-groups set inst-123 --security-group sg-web --security-group sg-ssh
fm compute instance security-groups set inst-123 --port port-abc --security-group sg-web
fm compute instance security-groups set inst-123 --clear
Usage:
fm compute instance security-groups set <instance-id> --security-group <sg-id> [--security-group <sg-id> ...] [flags]
Flags:
--clear remove ALL security groups (mutually exclusive with --security-group)
-h, --help help for set
--port string target a single instance port (Neutron port ID) instead of every port uniformly — for multi-NIC instances with differing per-port sets
--security-group strings security group ID(s) to set (repeatable; replace semantics)
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance start
text
Start a stopped compute instance.
Usage:
fm compute instance start <instance-id> [flags]
Flags:
-h, --help help for start
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance stop
text
Stop a running compute instance.
Usage:
fm compute instance stop <instance-id> [flags]
Flags:
--force force stop (hard shutdown)
-h, --help help for stop
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance tags
text
Read and replace an instance's tags
Usage:
fm compute instance tags [command]
Aliases:
tags, tag
Available Commands:
get Show an instance's tags
set Replace an instance's tags
Flags:
-h, --help help for tags
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)
Use "fm compute instance tags [command] --help" for more information about a command.fm compute instance tags get
text
Show an instance's tags
Usage:
fm compute instance tags get <instance-id> [flags]
Flags:
-h, --help help for get
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute instance tags set
text
Replace an instance's tags in place with exactly the given set
(replace semantics — any tag not listed is removed).
This mirrors 'fm compute instance security-groups set': the set you pass IS the
resulting set. To ADD one tag without disturbing the others, read the current
ones first with 'fm compute instance tags get' and pass them all back.
Use --clear to remove every tag.
The platform's own frostmoln_* keys are never shown here and cannot be set;
they are preserved across the replace, so clearing your tags does not disturb
the instance's billing or provenance metadata.
Examples:
fm compute instance tags set inst-123 --tag env=prod --tag owner=team-a
fm compute instance tags set inst-123 --clear
Usage:
fm compute instance tags set <instance-id> --tag <key=value> [--tag <key=value> ...] [flags]
Flags:
--clear remove ALL tags (mutually exclusive with --tag)
-h, --help help for set
--tag strings tag in key=value format (repeatable; replace semantics)
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute ssh-key
text
Manage SSH keys for instance access.
Usage:
fm compute ssh-key [command]
Aliases:
ssh-key, ssh-keys, key, keys
Available Commands:
create Create SSH key
delete Delete SSH key
get Get SSH key details
list List SSH keys
Flags:
-h, --help help for ssh-key
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)
Use "fm compute ssh-key [command] --help" for more information about a command.fm compute ssh-key create
text
Create a new SSH key.
Examples:
fm compute ssh-key create --name my-key --public-key "ssh-rsa AAAAB3..."
fm compute ssh-key create --name my-key --file ~/.ssh/id_rsa.pub
Usage:
fm compute ssh-key create [flags]
Flags:
--file string path to public key file
-h, --help help for create
--name string key name (required)
--public-key string public key content
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute ssh-key delete
text
Delete an SSH key.
Usage:
fm compute ssh-key delete <key-name> [flags]
Flags:
-h, --help help for delete
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute ssh-key get
text
Get detailed information about a specific SSH key.
Usage:
fm compute ssh-key get <key-name> [flags]
Flags:
-h, --help help for get
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)fm compute ssh-key list
text
List all SSH keys.
Usage:
fm compute ssh-key list [flags]
Flags:
-h, --help help for list
Global Flags:
--config string config file (default is $HOME/.fm/config.yaml)
-d, --debug enable debug/verbose output
--no-color disable colored output
-o, --output string output format: table, json, yaml, wide (default "table")
-q, --quiet suppress non-essential output
--tenant string tenant ID to operate on (overrides the active/default tenant; also FM_TENANT)