Add a resource class representing the number of guests a compute node
can host concurrently with memory encrypted at the hardware level.
Initially this is required because on AMD SEV-capable hardware, the
memory controller has a fixed number of slots for holding encryption
keys, one per guest. Typical hardware only has 15 slots, thereby
limiting the number of SEV guests which can be run concurrently to 15.
nova needs to track how many slots are available and used in order to
avoid attempting to exceeding that limit in the hardware.
In the future support may be added for equivalent functionality from
other vendors, such as Intel MKTME; however it is not yet known
whether MKTME would have a similar limit.
See
http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html
for more details, and
http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-04-23.log.html#t2019-04-23T20:35:19https://review.opendev.org/#/c/641994/
for the bike-shedding discussion over the name.
Change-Id: I97a015d4070db947e4b96fb35021da01d61016cc
blueprint: amd-sev-libvirt-support
The normalize_name utility provides consumers of os-resource-classes
with a way of generating a known-good name for a custom resource class.
This is equivalent to the os-traits utility of the same name [1].
[1] 9eab06df2f/os_traits/__init__.py (L113)
Change-Id: Id5557d65f11ed4dee10c8df2a42a4c485bfd65d1
Two new standard resource classes were added in the time between when
os-resource-classes was first created and now. This change adds the
missing classes and adds a rather tedious sanity check to make sure
that tests are updated when adding new classes.
Change-Id: I00158c3167430e180040c71cd6e2d646f64372fa
In earlier review of the proof of concept, STANDARDS was the
preferred name as it was more aligned with expectations set by
in-nova use of resource classes.
Change-Id: I0cca8b0f3b61389dcba8597808e79e0524611dab
Adjust tox settings for a reasonable set of job defaults.
Turn on the usual templates in .zuul.yaml
Correct small pep8 and docs issues to get tox jobs passing.
Change-Id: Id0ebeab2ec2439d52defe59096b07c3d0b7bc66d