Placement update 26. First a note from your editor: This will be the last of these I do until July 7th. I'll be taking a break from sometime next week until July. If someone else would like to do the three updates on the state of placement and resource providers in that window that would be great. # What Matters Most It's actually a bit hard to be clear at the moment. Things are a bit up in the air with some unresolved questions. The work for how to deal with claims in the scheduler was proceeding apace at https://review.openstack.org/#/q/status:open+topic:bp/placement-claims and then at this week's scheudler subteam meeting we started talking about "complex" allocations (reflected in an email thread: http://lists.openstack.org/pipermail/openstack-dev/2017-June/117913.html and etherpad: https://etherpad.openstack.org/p/placement-allocations-straw-man. and a proposed (wip-ish) spec: https://review.openstack.org/#/c/471927/ ). Part of what's up in the air about this is a) there isn't yet agreement that this is the right way to go, b) it's not clear what the impact of this change will be on the processing done in the filter scheduler, mostly in terms of how the provided information is used (if at all) during the filtering and weighing. In the thread linked above there's a series of question that are trying to shine lights into the various corners so we can make an informed decision. From my perspective, writing answers to those questions will help us to resolve the current situation and help us to not get caught in these common cycles of questioning that we seem to do when working on scheduler-related stuff. # What's Changed Incremental progress across the board. Some new code linked in below. # Help Wanted Areas where volunteers are needed. * General attention to bugs tagged placement: https://bugs.launchpad.net/nova/+bugs?field.tag=placement * Helping to create api documentation for placement (see the Docs section below). # Main Themes ## Claims in the Scheduler Work is in progress on having the scheduler make resource claims but is having a period of reflection and discussion. See the "matters most" section above. https://review.openstack.org/#/q/status:open+topic:bp/placement-claims ## Traits The traits blueprint has been completed, based on the work described in the spec, but we still have no way to make use of the traits: * The placement API and the get_all_by_filters method on the ResourceProviderList object have no way of expressing that a request for resource providers should be filtered by a set of trait requirements (or preferences). * There's nothing on the nova-scheduler side of things which allows expressing a trait that would be sent to the placement API. There is a new spec (for queens) for the second part: https://review.openstack.org/#/c/468797/ And there is some old code for the first part that will need to revitalized and will likely be impacted by the outcome of "what matters most" above: https://review.openstack.org/#/c/429364/ ## Shared Resource Providers Currently pending resolution of the complex allocations discussion. ## Nested Resource Providers Work has resumed on nested resource providers. https://review.openstack.org/#/q/status:open+topic:bp/nested-resource-providers Currently having some good review discussion on data structures and graph traversal and search. It's a bit like being back in school. ## User and Project IDs in Allocations This will allow placement allocations to be considered when doing resource accounting for things like quota. User id and project id information is added to allocation records and a new API resource is added to be able to get summaries of usage by user or project. https://review.openstack.org/#/q/topic:bp/placement-project-user ## Docs Lots of placement-related api docs have merged or are in progress: topics: * https://review.openstack.org/#/q/status:open+topic:cd/placement-api-ref Soon the whole API will be documented, so it will be time to turn on a publishing job (only drafts are created now, as far as I recall). It's interesting to note that in the process of documenting the API we found (and fixed) a few (minor) bugs. # Other Code/Specs * https://review.openstack.org/#/c/472378/ A proposed fix to using multiple config locations with the placement wsgi app. There's some active discussion on whether the solution in mind is the right solution, or even whether the bug is a bug (it is!). * https://review.openstack.org/#/c/470578/ Add functional test for local delete allocations * https://review.openstack.org/#/c/460147/ Use DELETE inventories method in report client. * https://review.openstack.org/#/c/427200/ Add a status check for legacy filters in nova-status. * https://review.openstack.org/#/c/453916/ Don't send instance updates from compute if not using filter scheduler * https://review.openstack.org/#/q/project:openstack/osc-placement Work has started on an osc-plugin that can provide a command line interface to the placement API. It's quite likely that this code is going to need to be adopted by someone new. * https://review.openstack.org/#/c/457636/ Devstack change to install that plugin. * https://review.openstack.org/#/c/469037/ Cleanups for _schedule_instances() * https://review.openstack.org/#/c/469047/ Update placement.rst to link to more specs * https://review.openstack.org/#/c/469048/ Provide more information about installing placement * https://review.openstack.org/#/c/468928/ Disambiguate resource provider conflict message * https://review.openstack.org/#/c/471067/ Use util.extract_json in allocations handler # End \o/ -- Chris Dent ┬──┬◡ノ(° -°ノ) https://anticdent.org/ freenode: cdent tw: @anticdent