Here's a placement update. It's been a rather busy week in placement-land: Gibi and I, with the help of others, have been getting the functional tests in nova working with an external placement. It is working now, which is great, but much work was done, more details within.
Most Important
Progress continues on the work in ansible, puppet/tripleo, kolla, loci to package placement up and establish upgrade processes. All of these things need review (see below). Work on GPU reshaping in virt drivers is getting close.
What's Changed
- Devstack installs placement from openstack/placement, not nova.
- Placement now runs tempest and grenade (in py3) in CI. This is great because real integration tests and sad because our once really fast CI runs are gone.
- The placement service can now start without a conf file. This is basically fixing a bug: we required a single config file in a specific location, rather than the defaults (which includes no file). We require an explicit database connection.
Bugs
- Placement related bugs not yet in progress: 19. +2.
- In progress placement bugs 14. +1
Specs
Spec freeze is milestone 2, the week of January 7th. None of the specs listed last week have merged.
-
https://review.openstack.org/#/c/544683/ Account for host agg allocation ratio in placement (Still in rocky/)
-
https://review.openstack.org/#/c/595236/ Add subtree filter for GET /resource_providers
-
https://review.openstack.org/#/c/597601/ Resource provider - request group mapping in allocation candidate
-
https://review.openstack.org/#/c/549067/ VMware: place instances on resource pool (still in rocky/)
-
https://review.openstack.org/#/c/555081/ Standardize CPU resource tracking
-
https://review.openstack.org/#/c/599957/ Allow overcommit of dedicated CPU (Has an alternative which changes allocations to a float)
-
https://review.openstack.org/#/c/591037/ Modelling passthrough devices for report to placement
-
https://review.openstack.org/#/c/603955/ Nova Cyborg interaction specification.
-
https://review.openstack.org/#/c/601596/ supporting virtual NVDIMM devices
-
https://review.openstack.org/#/c/603352/ Spec: Support filtering by forbidden aggregate
-
https://review.openstack.org/#/c/552924/ Proposes NUMA topology with RPs
-
https://review.openstack.org/#/c/569011/ Count quota based on resource class
-
https://review.openstack.org/#/c/141219/ Adds spec for instance live resize
-
https://review.openstack.org/#/c/612497/ Provider config YAML file
-
https://review.openstack.org/#/c/509042/ Propose counting quota usage from placement and API database
-
https://review.openstack.org/603545 Resource modeling in cyborg.
-
https://review.openstack.org/#/c/609960/ Support filtering of allocation_candidates by forbidden aggregates
Main Themes
Making Nested Useful
Progress is being made on gpu-reshaping for libvirt and xen:
Also making use of nested is bandwidth-resource-provider:
Eric's in the process of doing lots of cleanups to how often the ProviderTree in the resource tracker is checked against placement, and a variety of other "let's make this more right" changes in the same neighborhood:
- Stack at: https://review.openstack.org/#/c/615646/
Extraction
(There's an etherpad which tracks some of the work related to extraction. Please refer to that for additional information.)
Several deployment tools are working on making things work with the extracted placement:
A replacement for placeload
performance testing that was in the
nova-next
job: https://review.openstack.org/#/c/619248/. This
might be of interest to people trying to do testing of live
services without devstack. It starts with a basic node, turns on
mysql, runs placement with uwsgi, and does the placeload testing.
Note that this found a pretty strange bug in
_ensure_aggregates.
Documentation tuneups:
- Release-notes: https://review.openstack.org/#/c/618708/ This is blocked until we refactor the release notes to reflect now better.
- The main remaining task here is participating in openstack-manuals.
The functional tests in nova excitement this week has led to some interesting changes. The biggest of these is changing placement to no longer use global config. That patch is an aggregate of the many things done to remove a race condition in the nova functional tests. Trying to use the config of two different projects in the same process space is hard if they are both global. So now placement doesn't. This is a win in many ways. Getting those two patches merged soon is important.
We've been putting off making a decision about os-resource-classes. Anyone have strong opinions?
Other
There are 12 or so open changes in placement itself. Of those these two are the most important:
-
https://review.openstack.org/#/c/619121/ Stop using global oslo_config
-
https://review.openstack.org/#/c/614559/ Correct lower-constraints.txt and the related tox job
Outside of placement itself, here are some related changes:
-
https://review.openstack.org/#/q/topic:bp/initial-allocation-ratios Improve handling of default allocation ratios
-
https://review.openstack.org/#/q/topic:minimum-bandwidth-allocation-placement-api Neutron minimum bandwidth implementation
-
https://review.openstack.org/#/c/602160/ Add OWNERSHIP $SERVICE traits
-
https://review.openstack.org/#/c/586960/ zun: Use placement for unified resource management
-
https://review.openstack.org/#/q/project:openstack/blazar+topic:bp/placement-api Blazar using the placement-api
-
https://review.openstack.org/619626 Tenks doing some node management, with a bit of optional placement.
-
https://review.openstack.org/#/c/620485/ Sync placement database to the current version (in grenade)
-
https://review.openstack.org/#/c/619107/ Address nits on lib/placement for extracted placement (in devstack)
End
That was the November that was.