Standard Capabilities

Problem description

For the Liberty release there is a proposal [1] to allow storage backends to push capabilities of their pools [1]. Eventually we would want some common capabilities to graduate into becoming a well defined capability. The point of this spec is to agree on the initial well defined capabilities.

Use Cases

Having the well defined capabilities will allow the deployer to see what common capabilities are shared beyond their deployed backends in Cinder.

Proposed change

The initial well defined capabilities are:

  • QOS

  • Compression

  • Replication

  • Thin provisioning

Keep in mind this is just an agreement that these are common features that a backend could support. As shown in the proposal of how this will work [1], backends will still be able to push up the specific keys they look for in volume types for these capabilities.



Data model impact

None. This information comes directly from the volume drivers, reported to the scheduler, to the Cinder API.

REST API impact


Security impact


Notifications impact


Other end user impact


Performance Impact


Other deployer impact


Developer impact

Volume driver maintainers will need report capabilities from their driver to the scheduler. They can get this information directly from the backend and pass it right up to the scheduler if it already follows the format specified earlier. If not, it’s up to the driver to parse the response from the backend in a format the scheduler will understand. If capabilities are not being reported, the default False on features will be done.



Primary assignee:


Work Items

  • Standardize on the Capabilities here. Right here, right now.





Documentation Impact

The developer docs for driver maintainers will need to be updated to include the list of common capabilities the maintainer needs to have their driver push that they support. By default capabilities are marked as False, as in not being supported by the driver.


[1] -