Support filtering by aggregate membership to allocation candidates

Registered by Jay Pipes on 2018-02-14

The list of resource providers that the placement API's ``GET
/allocation_candidates`` returns can be very large, particularly when many
compute hosts are empty. Sometimes nova may have information that would allow
the number of compute hosts to be dramatically reduced. For instance, if nova
knows that a particular project is "pinned" to a host aggregate, currently nova
asks placement for all the resource providers that meet the resource
requirements of the flavor and then promptly discards any compute hosts that
are not in that particular host aggregate (in the aggregate multi-tenancy
isolation filter).

This process could be much more efficient if the nova scheduler were to simply
ask placement to only return compute hosts that are associated with a nova host
aggregate.

Blueprint information

Status:
Complete
Approver:
Matt Riedemann
Priority:
Medium
Drafter:
Jay Pipes
Direction:
Approved
Assignee:
Ed Leafe
Definition:
Approved
Series goal:
Accepted for rocky
Implementation:
Implemented
Milestone target:
milestone icon rocky-2
Started by
Matt Riedemann on 2018-03-13
Completed by
Matt Riedemann on 2018-05-03

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/alloc-candidates-member-of,n,z

Addressed by: https://review.openstack.org/544694
    Support member_of param for allocation candidates

Approved for Rocky. -- mriedem 20180215

Ed is working on it here: https://review.openstack.org/#/c/552098/

Addressed by: https://review.openstack.org/552098
    Add 'member_of' param to GET /allocation_candidates

Merged on March 17th, 2018.

Addressed by: https://review.openstack.org/554357
    Address issues raised in adding member_of to GET /a-c

Given the spec amendment https://review.openstack.org/#/c/555413/ to add AND logic to the member_of parameter in a new microversion, to be built on top of 1.21, we should probably re-open this blueprint. -- mriedem 20180328

Addressed by: https://review.openstack.org/561315
    support multiple member_of qparams for GET /r-ps

Gerrit topic: https://review.openstack.org/#q,topic:bug/1763907,n,z

Addressed by: https://review.openstack.org/561399
    Add unit tests for alloc_cands with member_of

Addressed by: https://review.openstack.org/561400
    Fix member_of with shared providers

Addressed by: https://review.openstack.org/566011
    Expand member_of functional test cases

Addressed by: https://review.openstack.org/568313
    Make scheduler client allow multiple member_of query parameters

Addressed by: https://review.openstack.org/568923
    Update nova-status and docs for required placement 1.24

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.