Creating custom flavors for virtual machines
In the compute cluster, a configuration template for virtual machines is called a flavor. Flavors simplify VM deployment. They allow you to set the number of virtual CPU cores and the amount of RAM a virtual machine will use. By default, five predefined flavors are created with the following parameters:
Name | vCPUs | Memory |
---|---|---|
tiny | 1 | 512 MiB |
small | 1 | 2 GiB |
medium | 2 | 4 GiB |
large | 4 | 8 GiB |
xlarge | 8 | 16 GiB |
You can create custom flavors with different sets of vCPU and RAM resources:
- Public flavors (default) are visible to all projects in the cluster. Any user from any project can use these flavors to create virtual machines.
-
Private flavors have restricted visibility and are shared only with specific projects. Only users from those projects can use these flavors to create VMs. Private flavors are useful when you need to:
- Ensure only certain projects can access specific VM configurations
- Create tailored configurations not suited for general use
- Implement internal cost controls or usage restrictions
You can delete existing flavors at any time, including the predefined ones.
Prerequisites
- To authorize further OpenStack commands, the OpenStack command-line client must be configured, as outlined in Connecting to OpenStack command-line interface.
To create a public flavor
Admin panel
- On the Compute > Virtual machines > Flavors tab, click Create flavor.
-
In the Create flavor window, specify a flavor name, a number of virtual CPU cores, an amount of RAM, and then click Create.
The created flavor will be available to all of the projects.
Command-line interface
Use the following command:
vinfra service compute flavor create [--swap <size-mb>] --vcpus <vcpus> --ram <size-mb> <flavor-name>
--swap <size-mb>
- Swap space size, in megabytes
--vcpus <vcpus>
- Number of virtual CPUs
--ram <size-mb>
- Memory size, in megabytes
<flavor-name>
- Flavor name
For example, to create a flavor called myflavor
with 1 vCPU and 3 GB of RAM, run:
# vinfra service compute flavor create myflavor --vcpus 1 --ram 3072
The new flavor will appear in the vinfra service compute flavor list
output:
# vinfra service compute flavor list +--------------------------------------+----------+-------+------+-------+ | id | name | ram | swap | vcpus | +--------------------------------------+----------+-------+------+-------+ | 100 | tiny | 512 | 0 | 1 | | 101 | small | 2048 | 0 | 1 | | 102 | medium | 4096 | 0 | 2 | | 103 | large | 8192 | 0 | 4 | | 104 | xlarge | 16384 | 0 | 8 | | 2e32ebd2-5d83-45fd-a526-3ae4a6658078 | myflavor | 3072 | 0 | 1 | +--------------------------------------+----------+-------+------+-------+
To create a private flavor
-
Create a flavor with the
--private
option. For example, to create the flavorprivate_tiny
with 1 vCPU, 512 MiB of RAM, and the automatically generated UUID, run:# openstack --insecure flavor create private_tiny --private --id auto --ram 512 --disk 0 --vcpus 1
-
Assign the flavor to a project. For example, to assign the flavor
private_tiny
to the projectmyproject
within the domainmydomain
, run:# openstack --insecure flavor set private_tiny --project myproject --project-domain mydomain
The created flavor will only be available to the assigned project.
To delete a flavor
Admin panel
- On the Compute > Virtual machines > Flavors tab, select the flavor you want to delete, and then click Delete.
-
Click Delete in the confirmation window.
Command-line interface
Use the following command:
vinfra service compute flavor delete <flavor>
<flavor>
- Flavor ID or name
For example, to delete the flavor myflavor
, run:
# vinfra service compute flavor delete myflavor