Resource tracker allows virt driver to update provider tree

Registered by Eric Fried on 2018-02-01

In the movement towards using placement for scheduling and resource management, the virt driver method get_available_resource was initially superseded by get_inventory, whereby the driver could specify its inventory in terms understood by placement. But get_inventory is limited to expressing only inventory (not traits or aggregates) and only for the resource provider corresponding to the compute node. Recent developments such as nested resource providers and traits necessitate the ability for the virt driver to have deeper control over what the resource tracker configures in placement on behalf of the compute node. This blueprint proposes a new virt driver method, update_provider_tree, and its method of consumption by the resource tracker, allowing full control over the placement representation of the compute node and its associated providers and metadata.

Blueprint information

Status:
Complete
Approver:
Sylvain Bauza
Priority:
High
Drafter:
Eric Fried
Direction:
Approved
Assignee:
Eric Fried
Definition:
Approved
Series goal:
Accepted for rocky
Implementation:
Implemented
Milestone target:
None
Started by
Eric Fried on 2018-02-01
Completed by
Eric Fried on 2018-05-30

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/update-provider-tree,n,z

Addressed by: https://review.openstack.org/540111
    Update Provider Tree

Gerrit topic: https://review.openstack.org/#q,topic:bp/nested-resource-providers,n,z

Addressed by: https://review.openstack.org/537648
    New-style _set_inventory_for_provider

Addressed by: https://review.openstack.org/533821
    SchedulerReportClient.update_from_provider_tree

Addressed by: https://review.openstack.org/520246
    Use update_provider_tree from resource tracker

Addressed by: https://review.openstack.org/531260
    Fix nits in update_provider_tree series

Addressed by: https://review.openstack.org/535517
    Move refresh time from report client to prov tree

Addressed by: https://review.openstack.org/539324
    Make generation optional in ProviderTree

Addressed by: https://review.openstack.org/527728
    WIP: Add nested resources to server moving tests

Addressed by: https://review.openstack.org/545495
    Clarify update_provider_tree docstring

Approved for Rocky. -- mriedem 20180227

Addressed by: https://review.openstack.org/552122
    Allow for merging traits

Addressed by: https://review.openstack.org/553475
    ProviderTree.{add|remove}_{traits|aggregates}

Addressed by: https://review.openstack.org/553476
    update_provider_tree devref and docstring updates

Addressed by: https://review.openstack.org/520313
    xenapi(N-R-P): Add API to support vgpu resource provider create

Addressed by: https://review.openstack.org/521041
    (WIP)xenapi(N-R-P): Add API to support compute node resource provider update and create

Addressed by: https://review.openstack.org/521717
    xenapi(N-R-P):Get vgpu info from `allocations`

Addressed by: https://review.openstack.org/556628
    Slugification utilities for placement names

Gerrit topic: https://review.openstack.org/#q,topic:bp/vgpu-rocky,n,z

Addressed by: https://review.openstack.org/560442
    Remove :return from update_provider_tree docstring

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.