[nova][ptg] Summary: Using Forbidden Aggregates

Eric Fried openstack at fried.cc
Fri May 3 03:59:15 UTC 2019


Spec: https://review.opendev.org/#/c/609960/

Summary:
- TL;DR: Allows you to say "You can't land on a host that does X unless
you specifically require X". Example: Keep my Windows-licensed hosts for
Windows instances.
- Exploit placement enablement for forbidden aggregates [1] in Nova
- Set (nova) aggregate metadata with a syntax similar/identical to that
of extra_specs for required traits (e.g. 'trait:CUSTOM_WINDOWS_ONLY':
'required')
- During scheduling, nova will discover all aggregates with metadata of
this form. For each:
  - Construct a list of the traits in the aggregate metadata
  - Subtract traits required by the server request's flavor+image.
  - If any traits from the aggregate remain, add this aggregate's UUID
(which corresponds to a placement aggregate) to the list of "forbidden
aggregates" for the GET /allocation_candidates request.

Agreements:
- The "discover all aggregates" bit has the potential to be slow, but is
better than the alternative, which was having the admin supply the same
information in a confusing conf syntax. And if performance becomes a
problem, we can deal with it later; this does not paint us into a corner.
- Spec has overall support, but a few open questions. Answer those, and
we're good to approve and move forward.

efried

[1]
https://docs.openstack.org/placement/latest/specs/train/approved/2005297-negative-aggregate-membership.html



More information about the openstack-discuss mailing list