Resource providers: custom resource classes (partial)

Registered by Jay Pipes on 2016-05-02

We propose to provide the ability for an administrator to create a set of special resource classes that indicate atomic resources that can be provided by a generic resource pool. The two first primary examples of these dynamic resource classes are likely to be Ironic "flavors" that describe an atomically-allocated set of hardware and FPGA algorithm contexts where a particular algorithm exposes a fixed number of contexts to access the algorithm in an FPGA.

Blueprint information

Status:
Complete
Approver:
Matt Riedemann
Priority:
High
Drafter:
Jay Pipes
Direction:
Approved
Assignee:
Jay Pipes
Definition:
Approved
Series goal:
Accepted for ocata
Implementation:
Implemented
Milestone target:
milestone icon ocata-3
Started by
Matt Riedemann on 2016-10-10
Completed by
Matt Riedemann on 2017-02-03

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/312696
    WIP Resource providers: dynamic resource classes

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

Addressed by: https://review.openstack.org/379654
    placement: add new resource_classes table

Addressed by: https://review.openstack.org/379655
    placement: add cache for resource classes

Addressed by: https://review.openstack.org/379656
    placement: change resource class to a StringField

Addressed by: https://review.openstack.org/382669
    Changed the name of the standard resource classes

The spec is not yet approved for this, there was discussion in the 20161010 nova scheduler meeting that the spec is overly detailed on implementation specifics, which is what got it bogged down during review. There is momentum on reviewing the code, so we're going to make an exception and approve the blueprint before the spec and then update the spec later. -- mriedem 20161010

Addressed by: https://review.openstack.org/384806
    Correct bug in microversion headers in placement

Addressed by: https://review.openstack.org/386843
    placement: add ResourceClass and ResourceClassList

Addressed by: https://review.openstack.org/386844
    placement: Implement ResourceClass.create()

Addressed by: https://review.openstack.org/390062
    placement: raise KeyError unknown resource class

Addressed by: https://review.openstack.org/391917
    placement: adds ResourceClass.get_by_name()

Addressed by: https://review.openstack.org/391918
    placement: implement destroy() resource class

Addressed by: https://review.openstack.org/391959
    placement: REST API for resource classes

Addressed by: https://review.openstack.org/393378
    fix connection context manager in rc cache

Addressed by: https://review.openstack.org/398469
    rt: pass nodename to internal methods

Addressed by: https://review.openstack.org/398470
    rt: pass the nodename to public methods

Addressed by: https://review.openstack.org/398471
    rt: remove fluff from test_resource_tracker

Addressed by: https://review.openstack.org/398472
    rt: explicitly pass compute node to _update()

Addressed by: https://review.openstack.org/398473
    rt: use a single ResourceTracker object instance

Addressed by: https://review.openstack.org/399170
    Add a retry loop to ResourceClass creation

Addressed by: https://review.openstack.org/400448
    placement: adds ResourceClass.save()

Addressed by: https://review.openstack.org/400459
    Fix bullet formatting in RP custom-resource-classes spec

Addressed by: https://review.openstack.org/404472
    placement: RT now adds proper Ironic inventory

Addressed by: https://review.openstack.org/404990
    placement: report client handle InventoryInUse

Addressed by: https://review.openstack.org/405705
    placement: minor refactor _allocate_for_instance()

Addressed by: https://review.openstack.org/406062
    placement: Perform build list of standard classes once

Addressed by: https://review.openstack.org/406149
    Improve the error message for failed RC deletion

Addressed by: https://review.openstack.org/406322
    Amend response details for custom resource classes PUT

Addressed by: https://review.openstack.org/406347
    Fix placement API version history 1.1 title

Gerrit topic: https://review.openstack.org/#q,topic:bp/generic-resource-pools-ocata,n,z

Addressed by: https://review.openstack.org/426296
    DNM: hack ironic with resource providers

There is one change left on this https://review.openstack.org/#/c/404472/ but we're closed for Ocata so let's pick this back up in Pike:

https://blueprints.launchpad.net/nova/+spec/custom-resource-classes-pike

-- mriedem 20170203

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.