[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nova][ptg] Summary: Using Forbidden Aggregates

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

- 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':
- 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.

- 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.