This is placement update 18-25, a weekly update of ongoing development related to the OpenStack placement service.
This is a "contract" version, meaning that the spec and other lists do no have new additions, they are updated to remove what has been merged or abandoned. This is done to encourage people to review existing stuff before jumping on whatever the new shiny is.
With this edition I'm adding a Documentation theme as it was something that's been pointed out recently as a gap.
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.
What's Changed
The optional placement database changes merged. This means that if [placement_database]/connection is set, that's the target database for placement data, instead of the nova_api database connection.
Support for consumer generations in allocations has merged.
The PlacementDirect non-HTTP interface to placement has merged.
Most placement unit tests no longer rely on the nova base test classs.
The spec for Reshape Provider Trees (the thing driving /reshaper) merged.
Bugs
- Placement related bugs not yet in progress: 17, one more than last week. We've got some work either starting or killing these.
- In progress placement bugs 8, -1 on last time.
Questions
In IRC yesterday 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?
Specs
Total last week: 13. Now: 12
Spec-freeze has passed, so presumably exceptions will be required for these. For those that are just not going to happen in Rocky, I guess we can start pushing them into Stein.
-
https://review.openstack.org/#/c/549067/ VMware: place instances on resource pool (using update_provider_tree)
-
https://review.openstack.org/#/c/552924/ Proposes NUMA topology with RPs
-
https://review.openstack.org/#/c/544683/ Account for host agg allocation ratio in placement
-
https://review.openstack.org/#/c/552105/ Support default allocation ratios This one has two +2, but is pending some decision on spec-freeze.
-
https://review.openstack.org/#/c/438640/ Spec on preemptible servers
-
https://review.openstack.org/#/c/555081/ Standardize CPU resource tracking
-
https://review.openstack.org/#/c/509042/ Propose counting quota usage from placement
-
https://review.openstack.org/#/c/560174/ Add history behind nullable project_id and user_id
-
https://review.openstack.org/#/c/565730/ Placement: any traits in allocation_candidate query
-
https://review.openstack.org/#/c/565741/ Placement: support mixing required traits with any traits
-
https://review.openstack.org/#/c/559718/ [WIP] Support Placement in Cinder
-
https://review.openstack.org/#/c/569011/ Count quota based on resource class
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.
-
"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:
There have been some tweaks to account for the behavior leakage discussed last week.
Consumer Generations
There are a couple of patches left on the consumer generation topic:
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
I thought this was done but there's one thing left. A command line tool:
Extraction
The optional placement database stuff has merged, and is running in the nova-next job. As mentioned above there are documentation tasks to do with this.
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
23 entries last week. 18 now. Nice merging. But we've added quite a few, we just don't see them because this is a contract week.
-
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/477478/ placement: Make API history doc more consistent
-
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/#/q/topic:bug/1732731 Bug fixes for sharing resource providers
-
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
End
Hi.