[openstack-dev] [nova] placement/resource providers update 17

Chris Dent cdent+os at anticdent.org
Fri Mar 31 11:54:50 UTC 2017


Here's an update on resource providers and placement. I've been away
from OpenStack for most of this week, so apologies if I have missed
something important. Please follow up with anything I've missed (or
questions or comments or anything else).

# What Matters Most

Traits are still top of the priority stack. Links below.
Conversation is also happening around the need to make claims,
with some different ideas on scope. More on that, also below.

# What's Changed

Andrey Volkov stepped up to move placement api-ref work forward.
There's now a CI job gate-placement-api-ref-nv which will publish
drafts of placement-api-ref work. With this in place we can start
making real progress on those docs. More in the #docs theme below.

The repo for osc-placement has been created:
https://github.com/openstack/osc-placement

# Help Wanted

Areas where volunteers are needed.

* General attention to bugs tagged placement:
    https://bugs.launchpad.net/nova/+bugs?field.tag=placement

* Helping to create api documentation for placement (see the Docs
    section below).

* Helping to create and evaluate functional tests of the resource
    tracker and the ways in which it and nova-scheduler use the
    reporting client. For some info see
    https://etherpad.openstack.org/p/nova-placement-functional
    and talk to edleafe.

* Performance testing. If you have access to some nodes, some basic
   benchmarking and profiling would be very useful. See the
   performance section below.

# Main Themes

## Traits

The work to implement the traits API in placement is happening at

     https://review.openstack.org/#/q/status:open+topic:bp/resource-provider-traits

It's getting close. The sooner we get that happy, the sooner we can
make progress on the rest of the themes. What's left are mostly
details.

## Ironic/Custom Resource Classes

A spec for "custom resource classes in flavors" that describes the
stuff that will actually make use of custom resource classes has merged:

       https://review.openstack.org/#/c/446570/

Over in ironic some functional and integration tests have started:

       https://review.openstack.org/#/c/443628/

## Claims in the Scheduler

A "Super WIP" spec for claims in the scheduler has started at

     https://review.openstack.org/#/c/437424/

There are several different points of view on how this is supposed
to work. We need to resolve those differences to make some progress.
We all seem to agree on the long term plan, but not on how to get
there in the medium term.

## Shared Resource Providers

https://blueprints.launchpad.net/nova/+spec/shared-resources-pike

Progress on this will continue once traits and claims have moved forward.

## Nested Resource Providers

https://review.openstack.org/#/q/status:open+topic:bp/nested-resource-providers

The spec for this has been updated with what was learned at the PTG
and to move it to Pike, needs to be reviewed.

## Docs

https://review.openstack.org/#/q/topic:cd/placement-api-ref

As mentioned above Andrey Volkov has made some excellent progress on
making this work. There's now a draft publishing job in place, but
with the current state of logs.openstack.org it's hard to see if it
is working correctly. If not, we'll fix it.

With this stuff in place it should now be possible to start filling
in the relevant documentation for the API. Note that at the moment
this is mostly a manual process; the author of the docs is expected
to gather the relevant JSON samples from running their own requests
against the API (using, for example, curl) and formatting
appropriately. I've been using gabbi-run for this as it makes it
easy to tweak and capture the JSON being sent.

Find me (cdent) or Andrey (avolkov) if you want to help out or have
other questions.

## Performance

We're aware that there are some redundancies in the resource tracker
that we'd like to clean up

      http://lists.openstack.org/pipermail/openstack-dev/2017-January/110953.html

but it's also the case that we've done no performance testing on the
placement service itself.

We ought to do some testing to make sure there aren't unexpected
performance drains.

# Other Code/Specs

* https://review.openstack.org/#/c/418393/
     A spec for improving the level of detail and structure in placement
     error responses so that it is easier to distinguish between
     different types of, for example, 409 responses.

* https://review.openstack.org/#/c/423872/
      Spec for versioned-object based notification of events in the
      placement API. We had some discussion in the weekly subteam
      meeting about what the use cases are for this, starting

      http://eavesdrop.openstack.org/meetings/nova_scheduler/2017/nova_scheduler.2017-03-06-14.00.log.html#l-120

      The gist is: "we should do this when we can articulate the
      problem the notifications will solve". Comment on the review if
      you have some opinions on that.

* https://review.openstack.org/#/c/448791/
    Idempotent PUT for resource classes. This is something that was
    discovered while evaluating some resource tracker code. Has a bp
    but probably needs a spec:
    https://blueprints.launchpad.net/nova/+spec/placement-put-resource-class

* https://review.openstack.org/#/c/444065/
    Fixing a typo in the resource providers spec.

* https://review.openstack.org/#/c/448282/
    https://review.openstack.org/#/c/448283/
    Two changes in the os-traits library. One for adding some
    networking related traits, another for restructuring the library
    to remove some boilerplate.

    Some fun discussion happening on this stuff to make it a bit more
    future proof and avoid duplication.

* https://review.openstack.org/#/c/447401/
    Adding a reference to resource provide traits spec about the
    os-traits library.

* https://bugs.launchpad.net/nova/+bug/1661312
      Race condition for allocations during evacuation. Known bug, not
      sure of solution. Needs an owner.

* https://bugs.launchpad.net/nova/+bug/1632852
      Cache headers not produced by placement API. This was assigned to
      several different people over time, but I'm not sure if there is
      any active code.

* https://etherpad.openstack.org/p/placement-newton-leftovers
       There's still some lingering stuff on here, some of which is
       mentioned elsewhere in this message, but not all.

# End

Go think about claims.

-- 
Chris Dent                 ¯\_(ツ)_/¯           https://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the OpenStack-dev mailing list