This is placement update 18-29, a weekly update of ongoing development related to the OpenStack placement service.
Thanks to Jay for providing one of these last week when I was away: http://lists.openstack.org/pipermail/openstack-dev/2018-July/132252.html
Most Important
Feature freeze is next week. We're racing now to get as much of three styles of work done as possible:
- Effectively managing nested and shared resource providers when managing allocations (such as in migrations).
- Correctly handling resource provider and consumer generations in the nova-side report client.
- Supporting reshaping provider trees.
The latter two are actively in progress. Not sure about the first. Anyone?
As ever, we continue to find bugs with existing features that existing tests are not catching. These are being found by people experimenting. So: experiment please.
What's Changed
Most of the functionality and fixes related to consumer generations is in place on the placement side.
We now enforce that consumer identifiers are uuids.
Bugs
- Placement related bugs not yet in progress: 15, no change from last week.
- In progress placement bugs 15, +1 on last week.
Main Themes
Documentation
This is a section for reminding us to document all the fun stuff we are enabling. Open areas include:
-
"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 whens and wheres of re-shaping and VGPUs.
Consumer Generations
These are in place on the placement side. There's some pending work on using them properly and addresssing some nits:
-
https://review.openstack.org/#/c/577227/ Address nits from consumer generation
-
https://review.openstack.org/#/c/579163/ return 404 when no consumer found in allocs
-
https://review.openstack.org/#/c/583667/ Use placement 1.28 in scheduler report client (1.28 is consumer gens)
-
https://review.openstack.org/#/c/577905/ Use consumer generation in _heal_allocations_for_instance
Reshape Provider Trees
The work to support a /reshaper URI that allows moving inventory and allocations between resource providers is in progress. The database handling (at the bottom of the stack) is pretty much ready, the HTTP API is close except for a small issue with allocation schema, and the nova side is in active progress.
That's all at: https://review.openstack.org/#/q/topic:bp/reshape-provider-tree
Mirror Host Aggregates
This needs a command line tool:
Extraction
I took some time yesterday to experiment with an alternative to the os-resource-classes that jay created. My version is, thus far, just a simple spike that makes symbols pointing to strings, and that's it. I've made a proof of concept of integrating it with placement.
Other extraction things that continue to need some thought are:
- infra and co-gating issues that are going to come up
- copying whatever nova-based test fixture we might like
Other
20 entries two weeks ago. 29 now.
-
https://review.openstack.org/#/c/546660/ Purge comp_node and res_prvdr records during deletion of cells/hosts
-
https://review.openstack.org/#/c/527791/ Get resource provider by uuid or name (osc-placement)
-
https://review.openstack.org/#/c/556669/ Check provider generation and retry on conflict
-
https://review.openstack.org/#/c/537614/ Add unit test for non-placement resize
-
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/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/568713/ Test for multiple limit/group_policy qparams
-
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
-
https://review.openstack.org/#/c/581771/ Add placement.concurrent_udpate to generation pre-checks
-
https://review.openstack.org/#/c/583907/ [placement] disallow additional fields in allocations
-
https://review.openstack.org/#/c/582899/ Delete allocations when it is re-allocated (This is addressing a TODO in the report client)
-
https://review.openstack.org/#/q/topic:bug/1469179 local disk inventory reporting related
-
https://review.openstack.org/#/c/579922/ Delete orphan compute nodes before updating resources
-
https://review.openstack.org/#/c/584218/ Consider forbidden traits in early exit of _get_by_one_request (Another TODO-related fix)
-
https://review.openstack.org/#/c/583489/ Remove Ocata comments which expires now
-
https://review.openstack.org/#/c/523006/ Ignore some updates from virt driver
-
https://review.openstack.org/#/c/584338/ Docs: Add Placement to Nova system architecture
-
https://review.openstack.org/#/c/553461/ Resource provider examples (osc-placement)
End
Thanks to everyone for all their hard work making this happen.