Use nested allocation candidates

Registered by Balazs Gibizer

Placement added support for allocation candidates query against nested resource provider trees in microversion 1.29. Nova's scheduler report client needs to start using the new microversion to enable adding support for vGPUs, bandwidth and cyborg devices reported as nested RPs under the compute node RP.

Work items in dependency order:
* Add support for microverion 1.28 (consumer generation) in scheduler report client.
* Add support for microversion 1.29 (nested allocation candidates) in scheduler report client.
* Write functional tests that verifies that scheduling against a nested tree is possible. Fix the bugs.
* Write functional tests that verifies that various server moving operation handles nested allocation properly (migrate, resize, resize-same-host, evacuate, live-migrate, unshelve). Fix bugs.

Blueprint information

Status:
Complete
Approver:
Matt Riedemann
Priority:
High
Drafter:
Balazs Gibizer
Direction:
Approved
Assignee:
Balazs Gibizer
Definition:
Approved
Series goal:
Accepted for stein
Implementation:
Implemented
Milestone target:
milestone icon stein-3
Started by
Matt Riedemann
Completed by
Matt Riedemann

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:consumer_gen,n,z
Related ML thread: http://lists.openstack.org/pipermail/openstack-dev/2018-August/133373.html

Addressed by: https://review.openstack.org/591597
    Consumer gen support for delete instance allocations

Addressed by: https://review.openstack.org/591647
    Consumer gen support for put allocations

Addressed by: https://review.openstack.org/591784
    Consumer gen: remove_provider_from_instance_allocation

Addressed by: https://review.openstack.org/591810
    consumer gen: move_allocations

Addressed by: https://review.openstack.org/591811
    consumer gen: more tests for delete allocation cases

Gerrit topic: https://review.openstack.org/#q,topic:use-nested-allocation-candidates,n,z

Addressed by: https://review.openstack.org/585672
    Enable nested allocation candidates in scheduler

Addressed by: https://review.openstack.org/583667
    consumer gen: support claim_resources

Gerrit topic: https://review.openstack.org/#q,topic:bp/use-nested-allocation-candidates,n,z

Addressed by: https://review.openstack.org/527728
    Functional test for booting with nested resources

Addressed by: https://review.openstack.org/587350
    Functional test for moving with nested resources

Addressed by: https://review.openstack.org/604083
    Use provider tree in virt FakeDriver

Addressed by: https://review.openstack.org/604084
    Run ServerMovingTests with nested resources

Approved for Stein as a specless blueprint. This is adding the nova client-side implementation/support for nested resource providers which are modeled in the Placement service. There is no spec since there are no anticipated API changes to Placement at this point. -- mriedem 20180920

Addressed by: https://review.openstack.org/604125
    Run negative server moving tests with nested RPs

Addressed by: https://review.openstack.org/605653
    Followup for Iba230201803ef3d33bccaaf83eb10453eea43f20

Addressed by: https://review.openstack.org/605658
    Follow up for Ie991d4b53e9bb5e7ec26da99219178ab7695abf6

Addressed by: https://review.openstack.org/605785
    Ignore forcing of live migration for nested instance

Addressed by: https://review.openstack.org/606050
    Consider nested allocations during allocation cleanup

Addressed by: https://review.openstack.org/606055
    Consider nested allocations during allocation cleanup

Addressed by: https://review.openstack.org/606111
    Ignore forcing of evacuation for nested instance

Addressed by: https://review.openstack.org/607287
    Refactor allocation checking in functional tests

Addressed by: https://review.openstack.org/608298
    Handle allocations consuming only from the child RPs

Addressed by: https://review.openstack.org/611970
    Drop legacy cold migrate allocation compat code

Gerrit topic: https://review.openstack.org/#q,topic:remove-migration-allocation-compat,n,z

Addressed by: https://review.openstack.org/613863
    Fix nits in I7cbd5d9fb875ebf72995362e0b6693492ce32051

There is one outstanding patch https://review.openstack.org/#/c/608298/ but it's dealing with scenarios that nova does support yet today (consuming allocations from resources that are only on nested resource providers rather than the compute node) so I think we can deal with that in whatever blueprints require that type of support and mark *this* blueprint as complete for Stein since it is proven to be working for blueprint bandwidth-resource-provider. -- mriedem 20190305

Gerrit topic: https://review.opendev.org/#/q/topic:bp/use-nested-allocation-candidates

Addressed by: https://review.opendev.org/658533
    Enable nested allocation candidates in scheduler

Gerrit topic: https://review.opendev.org/#/q/topic:bug/1819460

Addressed by: https://review.opendev.org/673546
    Reproduce bug #1819460 in functional test

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.