This is placement update 18-26, a weekly update of ongoing development related to the OpenStack placement service. This is an expand version.
For the next few weeks the "Specs" section will not be present. When we start reviewing specs for Stein, I'll add it back in.
Most Important
Nested allocation candidates are getting very close, but remain a critical piece of functionality. After that is making sure that we are progressing on the /reshapher functionality and bringing the various virt drivers into line with all this nice new functionality (which mostly means ProviderTrees).
All that nice new functionality means bugs. Experiment. Break stuff. Find bugs. Fix them.
Speaking of bugs: a collection of problems—not covered by tests— with consumer generations was discovered this week. Also a problem with the limit functionality on GET /allocation_candidates and how that works when force_hosts is being used. Fixes are in progress but these issues are a strong indicator of our need to make sure that we are experimenting with things: it's where features integrate with each other that problems are showing up.
What's Changed
Quite a lot of bug fixes and bug demonstrations have merged in this week, but features mostly stable.
Bugs
- Placement related bugs not yet in progress: 19, two more than last week. We've got some work either starting or killing these.
- In progress placement bugs 10, +2 on last time.
Questions
As far as I can tell there was no discussion on last week's question, so here it is again:
In IRC [last week] we had an extensive discussion about being able to set custom resource classes on the resource provider representing a compute node, outside the virt driver. At the moment the virt driver will clobber it. Is this what we always want?
Main Themes
Documentation
This is a section for reminding us to document all the fun stuff we are enabling. Open areas include:
-
Documenting optional placement database. A bug, 1778227 has been created to track this. This has started, for the install docs, but there are more places that need to be touched.
-
"How to deploy / model shared disk. Seems fairly straight-forward, and we could even maybe create a multi-node ceph job that does this - wouldn't that be awesome?!?!", says an enthusiastic Matt Riedemann.
-
The when's and where's of re-shaping and VGPUs.
Nested providers in allocation candidates
As far as I can tell the main thing left here is to turn it on in a microversion. That code is at:
Consumer Generations
There are new patches in progress on this, related to the bugs that were discovered:
There are a patches left on the consumer generation topic, some tidy ups, and some stuff related to healing allocations:
Is someone already working on code for making use of this in the resource tracker?
Reshape Provider Trees
This allows moving inventory and allocations that were on resource provider A to resource provider B in an atomic fashion. The blueprint topic is:
There are WIPs for the HTTP parts and the resource tracker parts, on that topic.
Mirror Host Aggregates
This needs a command line tool:
Extraction
A while back, Jay made a first pass at an os-resource-classes, which needs some additional eyes on it. I personally thought it might be heavier than required. If you have ideas please share them.
An area we will need to prepare for is dealing with the various infra and co-gating issues that will come up once placement is extracted.
We also need to think about how to manage the fixtures currently made available by nova that we might need or want to use in placement. Some of them might be worth sharing. How should we do that?
Other
18 entries last week. 24 now.
-
https://review.openstack.org/#/c/546660/ Purge comp_node and res_prvdr records during deletion of cells/hosts
-
https://review.openstack.org/#/q/topic:bp/placement-osc-plugin-rocky A huge pile of improvements to osc-placement
-
https://review.openstack.org/#/c/527791/ Get resource provider by uuid or name (osc-placement)
-
https://review.openstack.org/#/c/556669/ Tighten up ReportClient use of generation
-
https://review.openstack.org/#/c/537614/ Add unit test for non-placement resize
-
https://review.openstack.org/#/c/493865/ cover migration cases with functional tests
-
https://review.openstack.org/#/c/535517/ Move refresh time from report client to prov tree
-
https://review.openstack.org/#/c/561770/ PCPU resource class
-
https://review.openstack.org/#/c/566166/ rework how we pass candidate request information
-
https://review.openstack.org/#/c/564876/ add root parent NULL online migration
-
https://review.openstack.org/#/q/topic:bp/bandwidth-resource-provider add resource_requests field to RequestSpec
-
https://review.openstack.org/#/c/560107/ normalize_name helper (in os-traits)
-
https://review.openstack.org/#/c/538498/ Convert driver supported capabilities to compute node provider traits
-
https://review.openstack.org/#/c/568639/ Use placement.inventory.inuse in report client
-
https://review.openstack.org/#/c/517921/ ironic: Report resources as reserved when needed
-
https://review.openstack.org/#/c/568713/ Test for multiple limit/group_policy qparams
-
https://review.openstack.org/#/c/578048/ [placement] api-ref: add traits parameter
-
https://review.openstack.org/#/c/578826/ Convert 'placement_api_docs' into a Sphinx extension
-
https://review.openstack.org/#/c/577915/ [placement] Fix bug in consumer generation handling (This is likely to be replaced by something better, but including it for reference.)
-
https://review.openstack.org/#/c/568713/ Test for multiple limit/group_policy qparams
-
https://review.openstack.org/#/c/579110/ Fix placement incompatible with webob 1.7
-
https://review.openstack.org/#/c/576693/ Disable limits if force_hosts or force_nodes is set
-
https://review.openstack.org/#/c/576820/ Rename auth_uri to www_authenticate_uri
-
https://review.openstack.org/#/q/project:openstack/blazar+topic:bp/placement-api Blazar's work on using placement
End
A butterfly just used my house as a south to north shortcut. That'll do.