Compute schedulers in nova - AggregateInstanceExtraSpecsFilter docs are not clear
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
- [x] This is a doc addition request.
The description for the AggregateInstan
(note it's also described here: https:/
It's not clear what aggregate_
Note that further down in the document there are some examples:
https:/
hosts-with-ssds
So I guess based on that, it means you would just add metadata to a host aggregate like foo=bar and then tie a flavor to that by setting an extra spec of aggregate_
This originally came up while triaging bug 1841932 and trying to make sense of the filter (it's not very clear even by looking at the code).
-------
Release: on 2019-08-22 20:13:47
SHA: 0882ea69ea0c46c
Source: https:/
URL: https:/
Changed in nova: | |
status: | New → Triaged |
no the flavor does not have to have scoped and unsocped forms of hide_hypervisor_id
the flavor just needt to have hide_hypervisor_id
and an aggreate needs to be create with hide_hypervisor _id=true or false in the metadata
to match the flavor value.
the AggregateInstan ceExtraSpecsFil ter checks that all extra_specs that are unscoped or instance_ extra_specs in the flavor are present in at least 1 aggregate that
are scoped with aggregate_
the host is a member of.
if the host is a member of 2 aggreates _id=true and the second of which has hide_hypervisor _id=false
one of which has hide_hypervisor
then flavor with both hide_hypervisor _id=true or hide_hypervisor _id=false will be valid for this host. the filter does not support logical operators so if you want to or values together then you must use multipel aggreates.
this out of tree filter which is not relly maintained is geenerally more useful /github. com/openstack/ nfv-filters/ blob/master/ nfv_filters/ nova/scheduler/ filters/ aggregate_ instance_ type_filter. py /github. com/openstack/ nfv-filters/ blob/master/ doc/source/ scheduler_ filters/ aggregate- instance- type-filter. rst
https:/
https:/
but the real solution goign forward is likely to use CUSTOM_TRAITS and placmeent instead.
the usecasue of this filter was to do partioning of you cloud but the intree filter is really easy to misconfigure.
for example if you add hide_hypervisor _id=true to an aggrate but the flavor does not request it
then the filter will still pass the host which is not what people expect.
the the canonical example of where this goes wrong is people creating an NFV aggregate with and seeing NFV=true in there aggreate and in ther NFV flavours and then being confused by why there standard flavours that dont have NFV set in the flavor land in there NFV aggreate.
the out of tree filter invert the relationship by instead requireing that all extra_spec in the aggreate metadta must be in the flavor instead. which is whay you normally want as it will only allw the NFV flavor to go to the NFV aggrate without having to add NFV=false to all your standard flavors which is required whne using the in tree AggregateInstan ceExtraSpecsFil ter