And here we have placement update 19-21.
Most Important
The spec for nested magic has been split. The second half contains the parts which should be relatively straightforward. The original retains functionality that may be too complex. An email has been addressed to operators asking for feedback.
Those two specs represent a significant portion of the work planned this cycle. Getting them reviewed and merged is a good thing to do.
What's Changed
-
A few small refactorings plus the removal of null provider protections has improved performance when retrieving 10,000 allocation candidates significantly: from around 36 seconds to 6 seconds.
-
We've chosen to switch to office hours. Ed has started an email thread to determine when they should be.
-
Tetsuro's changes to add a RequestGroupSearchContext have merged. These simplify state management throughout the processing of individual request groups, and help avoid redundant queries.
-
Most of the code for counting (nova) quota usage from placement has merged.
-
Microversion 1.33 of the placement API has merged. This allows more expressive suffixes on granular request groups (e.g.,
resources_COMPUTE
in addition toresources1
).
Specs/Features
-
https://review.opendev.org/654799 Support Consumer Types. This is very close with a few details to work out on what we're willing and able to query on. It's two weeks later and still only has reviews from me.
-
https://review.opendev.org/658510 Spec for can_split part of nested magic. We're unlikely to do this at this point, unless response to the email asking for input is large and insisting.
-
https://review.opendev.org/662191 Spec for nested magic 1. The easier parts of nested magic: same_subtree, resource request groups, verbose suffixes (already merged as 1.33).
-
https://review.opendev.org/657582 Resource provider - request group mapping in allocation candidate. There's a WIP that looks promising, but we ought to make sure the spec is presenting the desired outcome.
These and other features being considered can be found on the feature worklist.
Some non-placement specs are listed in the Other section below. Note that nova will be having a spec-review-sprint this coming Tuesday. if you're doing that, spending a bit of time on the placement specs would be great too.
Stories/Bugs
(Numbers in () are the change since the last pupdate.)
There are 19 (-1) stories in the placement group. 0 (0) are untagged. 2 (0) are bugs. 4 (-1) are cleanups. 11 (0) are rfes. 2 (0) are docs.
If you're interested in helping out with placement, those stories are good places to look.
-
Placement related nova bugs not yet in progress on launchpad: 16 (0).
-
Placement related nova in progress bugs on launchpad: 7 (0).
osc-placement
osc-placement is currently behind by 12 microversions. No change since the last report. Note: Based on conversations that we see on reviews, explicitly trying to chase microversions when patching the plugin may not be aligned with the point of OSC. We're trying to make a humane interface to getting stuff done with placement. Different microversions allow different takes on stuff. It's the stuff that matters, not the microversion.
Pending Changes:
-
https://review.openstack.org/#/c/640898/ Add 'resource provider inventory update' command (that helps with aggregate allocation ratios).
-
https://review.openstack.org/#/c/651783/ Add support for 1.22 microversion. (So, for example, what matters here is that support for forbidden traits is being added. That it is in microversion 1.22 ought to be incidental (to the user of the client).)
-
https://review.openstack.org/586056 Provide a useful message in the case of 500-error
Main Themes
Nested Magic
The overview of the features encapsulated by the term "nested magic" are in a story.
There is some in progress code, some of it WIPs to expose issues:
-
https://review.opendev.org/657510 WIP: Allow RequestGroups without resources
-
https://review.opendev.org/657463 Add NUMANetworkFixture for gabbits
-
https://review.opendev.org/658192 Gabbi test cases for can_split
-
https://review.opendev.org/662245 WIP: Implement allocation candidate mappings
Consumer Types
Adding a type to consumers will allow them to be grouped for various purposes, including quota accounting. A spec has started. There are some questions about request and response details that need to be resolved, but the overall concept is sound.
Cleanup
We continue to do cleanup work to lay in reasonable foundations for the nested work above. As a nice bonus, we keep eking out additional performance gains too.
-
https://review.opendev.org/643269 Optionally run a wsgi profiler when asked. This has proven useful to find issues. The change has been unwipped and augumented with some documentation.
-
https://review.opendev.org/661769 Add olso.middleware.cors to conf generator
-
https://review.opendev.org/661922 Modernize CORS config and setup.
Ed Leafe has also been doing some intriguing work on using graph databases with placement. It's not yet clear if or how it could be integrated with mainline placement, but there are likely many things to be learned from the experiment.
Other Placement
Miscellaneous changes can be found in the usual place.
There are several os-traits changes being discussed.
Other Service Users
New discoveries are added to the end. Merged stuff is removed. As announced last week, anything that has had no activity in 4 weeks has been removed (many have been removed).
-
https://review.openstack.org/601596 Nova: spec: support virtual persistent memory
-
https://review.openstack.org/645316 Nova: Pre-filter hosts based on multiattach volume support
-
https://review.openstack.org/647396 Nova: Add flavor to requested_resources in RequestSpec
-
https://review.openstack.org/633204 Blazar: Retry on inventory update conflict
-
https://review.openstack.org/#/q/topic:bp/count-quota-usage-from-placement Nova: count quota usage from placement
-
https://review.openstack.org/#/q/topic:bug/1819923 Nova: nova-manage: heal port allocations
-
https://review.openstack.org/629142 Tempest: Add QoS policies and minimum bandwidth rule client
-
https://review.openstack.org/650188 nova-spec: Allow compute nodes to use DISK_GB from shared storage RP
-
https://review.opendev.org/659233 Cyborg: Placement report
-
https://review.opendev.org/657884 Nova: Spec to pre-filter disabled computes with placement
-
https://review.opendev.org/657801 rpm-packaging: placement service
-
https://review.opendev.org/657016 Delete resource providers for all nodes when deleting compute service
-
https://review.opendev.org/654066 nova fix for: Drop source node allocations if finish_resize fails
-
https://review.opendev.org/656885 nova: WIP: Hey let's support routed networks y'all!
-
https://review.opendev.org/662281 Fixes to keystoneauth to deal with the style of error responses that placement uses.
-
https://review.opendev.org/662371 starlingx: Add placement chart patch to openstack-helm
-
https://review.opendev.org/662229 helm: WIP: add placement chart
-
https://review.opendev.org/661679 starlingx: Add stx-placement docker image directives files
-
https://review.opendev.org/662164 kolla-ansible: Add a explanatory note for "placement_api_port"
-
https://review.opendev.org/658451 neutron-spec: L3 agent capacity and scheduling
End
That's a lot of reviewing. Please help out where you can. Your reward will be brief but sincere moments of joy.