============================= Manage Compute service quotas ============================= As an administrative user, you can use the :command:`nova quota-*` commands, which are provided by the ``python-novaclient`` package, to update the Compute service quotas for a specific project or project user, as well as update the quota defaults for a new project. .. todo:: At some point, probably in Queens, we need to scrub this page and mention the microversions that remove the proxy and network-related resource quotas. .. rubric:: Compute quota descriptions .. list-table:: :header-rows: 1 :widths: 10 40 * - Quota name - Description * - cores - Number of instance cores (VCPUs) allowed per project. * - fixed-ips - Number of fixed IP addresses allowed per project. This number must be equal to or greater than the number of allowed instances. * - floating-ips - Number of floating IP addresses allowed per project. * - injected-file-content-bytes - Number of content bytes allowed per injected file. * - injected-file-path-bytes - Length of injected file path. * - injected-files - Number of injected files allowed per project. * - instances - Number of instances allowed per project. * - key-pairs - Number of key pairs allowed per user. * - metadata-items - Number of metadata items allowed per instance. * - ram - Megabytes of instance ram allowed per project. * - security-groups - Number of security groups per project. * - security-group-rules - Number of security group rules per project. * - server-groups - Number of server groups per project. * - server-group-members - Number of servers per server group. View and update Compute quotas for a project ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To view and update default quota values --------------------------------------- #. List all default quotas for all projects: .. code-block:: console $ openstack quota show --default +----------------------+----------+ | Field | Value | +----------------------+----------+ | backup-gigabytes | 1000 | | backups | 10 | | cores | 20 | | fixed-ips | -1 | | floating-ips | 50 | | gigabytes | 1000 | | health_monitors | None | | injected-file-size | 10240 | | injected-files | 5 | | injected-path-size | 255 | | instances | 10 | | key-pairs | 100 | | l7_policies | None | | listeners | None | | load_balancers | None | | location | None | | name | None | | networks | 10 | | per-volume-gigabytes | -1 | | pools | None | | ports | 50 | | project | None | | project_name | project | | properties | 128 | | ram | 51200 | | rbac_policies | 10 | | routers | 10 | | secgroup-rules | 100 | | secgroups | 10 | | server-group-members | 10 | | server-groups | 10 | | snapshots | 10 | | subnet_pools | -1 | | subnets | 10 | | volumes | 10 | +----------------------+----------+ .. note:: This lists default quotas for all services and not just nova. #. Update a default value for a new project, for example: .. code-block:: console $ openstack quota set --instances 15 --class default To view quota values for an existing project -------------------------------------------- #. List the currently set quota values for a project: .. code-block:: console $ openstack quota show PROJECT_NAME +----------------------+----------------------------------+ | Field | Value | +----------------------+----------------------------------+ | backup-gigabytes | 1000 | | backups | 10 | | cores | 32 | | fixed-ips | -1 | | floating-ips | 10 | | gigabytes | 1000 | | health_monitors | None | | injected-file-size | 10240 | | injected-files | 5 | | injected-path-size | 255 | | instances | 10 | | key-pairs | 100 | | l7_policies | None | | listeners | None | | load_balancers | None | | location | None | | name | None | | networks | 20 | | per-volume-gigabytes | -1 | | pools | None | | ports | 60 | | project | c8156b55ec3b486193e73d2974196993 | | project_name | project | | properties | 128 | | ram | 65536 | | rbac_policies | 10 | | routers | 10 | | secgroup-rules | 50 | | secgroups | 50 | | server-group-members | 10 | | server-groups | 10 | | snapshots | 10 | | subnet_pools | -1 | | subnets | 20 | | volumes | 10 | +----------------------+----------------------------------+ .. note:: This lists quotas for all services and not just nova. To update quota values for an existing project ---------------------------------------------- #. Obtain the project ID. .. code-block:: console $ project=$(openstack project show -f value -c id PROJECT_NAME) #. Update a particular quota value. To update quotas for a project: .. code-block:: console $ openstack quota set --QUOTA_NAME QUOTA_VALUE PROJECT_NAME To update quotas for a class: .. code-block:: console $ openstack quota set --class --QUOTA_NAME QUOTA_VALUE CLASS_NAME .. note:: Only the ``default`` class is supported by nova. For example: .. code-block:: console $ openstack quota set --instances 50 PROJECT_NAME $ openstack quota show PROJECT_NAME +----------------------+----------------------------------+ | Field | Value | +----------------------+----------------------------------+ | ... | ... | | instances | 50 | | ... | ... | +----------------------+----------------------------------+ .. note:: To view a list of options for the :command:`openstack quota set` command, run: .. code-block:: console $ openstack help quota set View and update Compute quotas for a project user ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To view quota values for a project user --------------------------------------- #. Place the user ID in a usable variable. .. code-block:: console $ projectUser=$(openstack user show -f value -c id USER_NAME) #. Place the user's project ID in a usable variable, as follows: .. code-block:: console $ project=$(openstack project show -f value -c id PROJECT_NAME) #. List the currently set quota values for a project user. .. code-block:: console $ nova quota-show --user $projectUser --tenant $project For example: .. code-block:: console $ nova quota-show --user $projectUser --tenant $project +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 20 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | | server_groups | 10 | | server_group_members | 10 | +-----------------------------+-------+ To update quota values for a project user ----------------------------------------- #. Place the user ID in a usable variable. .. code-block:: console $ projectUser=$(openstack user show -f value -c id USER_NAME) #. Place the user's project ID in a usable variable, as follows: .. code-block:: console $ project=$(openstack project show -f value -c id PROJECT_NAME) #. Update a particular quota value, as follows: .. code-block:: console $ nova quota-update --user $projectUser --QUOTA_NAME QUOTA_VALUE $project For example: .. code-block:: console $ nova quota-update --user $projectUser --floating-ips 12 $project $ nova quota-show --user $projectUser --tenant $project +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 12 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | | server_groups | 10 | | server_group_members | 10 | +-----------------------------+-------+ .. note:: To view a list of options for the :command:`nova quota-update` command, run: .. code-block:: console $ nova help quota-update To display the current quota usage for a project user ----------------------------------------------------- Use :command:`nova limits` to get a list of the current quota values and the current quota usage: .. code-block:: console $ nova limits --tenant PROJECT_NAME +------+-----+-------+--------+------+----------------+ | Verb | URI | Value | Remain | Unit | Next_Available | +------+-----+-------+--------+------+----------------+ +------+-----+-------+--------+------+----------------+ +--------------------+------+-------+ | Name | Used | Max | +--------------------+------+-------+ | Cores | 0 | 20 | | Instances | 0 | 10 | | Keypairs | - | 100 | | Personality | - | 5 | | Personality Size | - | 10240 | | RAM | 0 | 51200 | | Server Meta | - | 128 | | ServerGroupMembers | - | 10 | | ServerGroups | 0 | 10 | +--------------------+------+-------+ .. note:: The :command:`nova limits` command generates an empty table as a result of the Compute API, which prints an empty list for backward compatibility purposes.