[placement] update 19-09

Chris Dent cdent+os at anticdent.org
Fri Mar 8 14:51:19 UTC 2019


HTML: https://anticdent.org/placement-update-19-09.html

Here's another placement update. It was feature freeze this week so
people are probably a bit worn, I'll try to keep this light and
quick.

# Most Important

We need to decide if we want to do what amounts to a feature freeze
exception for Tetsuro's negative member-of handling linked below and
work out how/when to fit Mel's allocation ratio work on
osc-placement (also below) into the world so people can use it.
If people have placement related forum sessions they would like to
see happen the deadline is either today (March 8th) or Monday,
depending on which and how you read various pieces of info. Matt has
already set up an extraction-related session.

It's also important to be thinking about how placement would like to
engage (as a group) with the PTG.

If you want to run for PTL (of placement or anything else) the
deadline is 23:45 UTC, 12 March.

# What's Changed

* The refactoring of the objects/resource_provider.py file into
   smaller, more single-purpose files, continues to merge. In case
   anyone is feeling like this is a lot of churn for little purpose,
   it does have purpose: This is making the code more accessible to
   people who aren't familiar with it. It is also providing a good
   review (a variety of warts and bugs and have been found and fixed)
   of stale code.

* pep8's whitespace handling has been turned back on in placement.
   We inherited the exceptions to the rules from nova, where fixing
   for those rules would have been messy. In placement it wasn't that
   much of a big deal.

* A conf setting `[placement_database]/sync_on_startup` has been
   added. Defaults to `False`. If `True`, the web service process
   will attempt the equivalent of `placement-manage db sync` at
   startup.

* Improved debug logging when requesting allocation candidates,
   so that operators can more accurately determine what requirement
   led to reduced or no available hosts.

* [1.5.0 of osc-placement](https://pypi.org/p/osc-placement) was
   released. It now goes up to microversion 1.18 (filter resource
   providers by required traits). (Note to everyone: We should make
   the info that shows up on PyPI more useful, by changing the
   README).

* VGPU reshaping for libvirt merged!

# Specs/Blueprints/Features

## Near to Done

* [Filter Allocation Candidates by Provider Tree](http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/alloc-candidates-in-tree.html)
   has been mostly completed by Tetsuro, but there's a [pending
   update to the spec](https://review.openstack.org/639033).
* [Support filtering by forbidden aggregate membership](http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/negative-aggregate-membership.html)
   also mostly [completed by
   Tetsuro](https://review.openstack.org/#/q/topic:bp/negative-aggregate-membership).

## Not yet Done

These will get punted to Train.

* [Support any traits in allocation_candidates
   query](http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/placement-any-traits-in-allocation_candidates-query.html)
* [Support mixing required traits with any
   traits](http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/placement-mixing-required-traits-with-any-traits.html)

## Not yet Approved

* [Resource provider - request group mapping in allocation candidate](https://review.openstack.org/#/c/597601/)
   has had a recent resurgence in attention.

# Bugs

There is a storyboard [project
group](https://storyboard.openstack.org/#!/project_group/placement)
for placement projects. Through to the end of Stein we'll be
paying attention to both it and Launchpad. The sole story in
storyboard right now is updating docs to indicate we are using
storyboard. So meta!

In launchpad:

* Placement related [bugs not yet in progress](https://goo.gl/TgiPXb):13.
   -2.
* [In progress placement bugs](https://goo.gl/vzGGDQ) 9. -8.

That large drop on in progress is because I went through and caught
up those bugs which had fixes committed but had not been
automatically updated.

# osc-placement

osc-placement is currently behind by 13 microversions.

Pending changes:

* [support for 1.19](https://review.openstack.org/#/c/641094/)
* [support for 1.21](https://review.openstack.org/#/c/641123/)
* [aggregate allocation ratio
   tool](https://review.openstack.org/#/c/640898/)

# Main Themes

## Nested

* VGPU reshaping for libvirt merged!

* The bandwidth-resource-provider topic has merged a vast amount of
   code but there is [some
   left](https://review.openstack.org/#/q/topic:bp/bandwidth-resource-provider).
   Some of it may still merge in Stein, but the rest will be for
   Train. The microversion
   ([2.72](https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#maximum-in-stein)
   provides the API-level bits to allow booting a host with a minimum
   bandwidth requirement.

     At least some of the [remaining
     changes](https://review.openstack.org/#/c/637953) will be
     backported.

There were no nibbles on last week's plea, so I'll say again: If
anyone reading this is in a position to provide third party CI with
fancy hardware for NUMA, NFV, FPGA, and GPU related integration
testing with nova, there's a significant need for that.

## Refactoring

The work that removed oslo.versionedobjects then moved on to
removing the List classes (e.g. AllocationList) in favor of using
native Python lists and breaking up the `resource_provider.py` file
into smaller files. The first portion of that (`scrub-Lists`)
merged. The next stage is on
[cd/de-list-phase2](https://review.openstack.org/#/q/topic:cd/de-list-phase2).

This will continue until each type has its own file.

# Other Placement

* <https://review.openstack.org/#/c/639628/>
   Docs: extract testing info to own sub-page

* <https://review.openstack.org/#/q/topic:cd/gabbi-tempest-job>
   Gabbi-based integration tests of placement. These recently found a
   bug that none of the functional, grenade, nor tempest tests did.

* <https://review.openstack.org/#/c/630216/>
   Add a vision-reflection (of the Technical Vision doc).

* <https://review.openstack.org/#/q/topic:bp/negative-aggregate-membership>
   Negative member of aggregate filtering resource providers and
   allocation candidates.

* <https://review.openstack.org/#/c/641422/>
   Docs: Group API versions by release

* <https://review.openstack.org/#/c/640555/>
   Add explicit short-circuit in get_all_by_consumer_id

# Other Service Users

(If you stick "placement" somewhere in your commit message I'll
probably eventually find your in-progress placement-related
changes.)

## Nova

* <https://review.openstack.org/#/q/topic:bp/count-quota-usage-from-placement>
   Using placement (from nova) for counting (some of) quota. Some of
   this, mostly related to database migrations, managed to make it in
   before feature freeze, but not the part that actually uses
   placement to do some counting, that is still pending.

* <https://review.openstack.org/621494>
   Add descriptions of numbered resource classes and traits

## Not Nova

* <https://review.openstack.org/#/q/topic:tripleo-nova-placement-removal>

* <https://review.openstack.org/#/q/topic:tripleo-placement-extraction>

* <https://review.openstack.org/#/q/topic:minimum-bandwidth-allocation-placement-api>
   Neutron side of minimum bandwidth.

* <https://review.openstack.org/#/q/bp/no-affinity-instance-reservation>
   Blazar reservation handling, including some manipulation of
   inventory in placement.

* <https://review.openstack.org/633204>
   Blazar: Retry on inventory update conflict

* <https://review.openstack.org/#/c/626382/>
   Kolla: Copy placement database migration script

* <https://review.openstack.org/#/c/629253/>
   Tempest: Minimum bandwidth allocation with placement

# End

Go forth and document and bug fix and raise a full and flavorful
stein.
-- 
Chris Dent                       ٩◔̯◔۶           https://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the openstack-discuss mailing list