Here's resource provider and placement update 45. I think we'll call
this one the last one of 2017 and I'll start things up again in 2018
on the 5th. Probably with some kind of new numbering scheme so the
subjects don't overlap with this year. Thanks to everyone who has
helped to move placement along this year. We've moved an absolute ton
of code and set the foundation for some long-desired features.

(Apologies if this version of the update is even more riddled with
typos and weird wrong words and bad contractions than normal, I have a
cold. I realize this is a bit like saying infinite (resource classes)
+ 1 is different from infinite (resources classes) - 1.)

# Most Important

The three main themes (nested providers, alternate hosts, migration
allocation doubling) remain the main priorities, but there's a lot of
work alongside these things to make them integrate properly and get
necessary bits (like traits) happening.

# What's Changed

Microversion 1.15 has merged. This adds last-modified headers to those
responses where it makes sense. This was done to increase the degree
to which we are good users of HTTP but doesn't have any immediate
change on functionality, unless you happen to want to use that
last-modified information client side. It does mean, however, that any
other pending microversion are now racing for 1.16.

Also, we've made a commitment that the nova-side of the conversation
requires placement microversion 1.14. This means that failovers to
older microversions in requests in the report client are not required.
Matt has started a nova-status check and docs for this:

There's plenty of code in the report client that is now redundant, but
doesn't really hurt anything by being there. If someone is aching for
something to do, it would be a nice cleanup (green bar on the yellow

# Help Wanted

(unchanged from last week, no new data, yet)

A takeaway from summit is that we need, where possible, benchmarking
info from people who are making the transition from old methods of
scheduling to the newer allocation_candidate driven modes.  While
detailed numbers will be most useful, even anecdotal summaries of
"woot it's way better" or "hmmm, no it seems worse" are useful.

# Docs

A few more docs improvements merged. Others need a bit more review to
push them over the edge:

    Add create inventories doc for placement

    Add x-openstack-request-id in API ref

    add API reference for create inventory

     doc: note that custom resources are not fully supported

# Main Themes

## Nested Providers

The nested-resource-providers stack has grown a long tail of changes
for managing nested providers rooted on a compute node:

I'm on the hook to decode some description of this work that Eric gave
me in IRC into a summary of what the end game is with that long tail
of stuff. That's been delayed because of the aforementioned cold, but
I intend to get to it next week. Alongside that will also be some
clarifications about how in_tree is supposed to work when querying
resource providers, as asked by Matt in response to last week's
update. Some of that will go in the placement docs.

While we currently have support for nested providers in
/resource_providers we do not in /allocation_candidates. My
understanding is that Jay has the ball on this.

## Alternate Hosts

Having the scheduler request and use alternate hosts is real close:

Matt has made a change to ironic's CI to depend on this stuff, to see
if reschedules will not work as desired:

## Migration Allocations

The main code to do doubling of migration allocations using an
allocation uuid has merged. I've started the process of changing that
to use the new POST /allocations functionality. Just a WIP at this
point but is mostly working:

## Misc Traits, Shared, Etc Cleanups

There's a stack of code that fixes up a lot of things related to
traits, sharing providers, test additions and fixes to those tests. At
the moment the changes are in a bug topic:

But that is not the only bug they are addressing. Some of the above
may appear in the list below too.

# Other

Since everyone seems rather busy anyway, once again this week nothing
new is added to the "other" list. I've simply copied over the previous
week's list with anything that's been merged or abandoned removed.

    skip authentication on root URI

    Log options at debug when starting API services under wsgi
    (Make any sense to split this into placement and nova versions? One
    seems easier than the other)

    VMware: implement get_inventory() driver method

    Proper error handling by _ensure_resource_provider
    (This is already approved for master, but there are backports.)

     Build the placement osc plugin

     Neutron's placement client

     request traits in nova

     Extract instance allocation removal code

     cover migration cases with functional tests

     Remove the Pike migration code for flavor migration
     and associated nova-status update

     Add support for VGPU

     Put the json schema in their own directory

# End

Your prize this week is an opportunity to start thinking about what it
will take to extract placement to its own repo, and whether we could
shorcut things with, in nova/api/openstack/placement/ (leaving
that as the only "placement" file in nova):

    from placement import deploy

Clearly this doesn't address migrations and such, but might be a
useful tool in a suite of tools to move the process along.

Chris Dent                      (⊙_⊙')
freenode: cdent                                         tw: @anticdent
OpenStack Development Mailing List (not for usage questions)

Reply via email to