Like many OpenStack projects, placement uses blueprints and specifications to plan and design upcoming work. Sometimes, however, certain types of work fit more in the category of wishlist, or when-we-get-around-to-it. These types of work are often not driven by user or operator feature requests, but are instead related to architectural, maintenance, and technical debt management goals that will make the lives of contributors to the project easier over time. In those cases a specification is too formal and detailed but it is still worthwhile to remember the idea and put it somewhere. That’s what this document is for: a place to find and put goals for placement that are related to making contribution more pleasant and keep the project and product healthy, yet are too general to be considered feature requests.

This document can also operate as one of several sources of guidance on how not to stray too far from the long term vision of placement.

Don’t Use Global Config

Placement uses oslo.config to manage configuration, passing a reference to an oslo_config.cfg.ConfigOpts as required. Before things were changed a global was used instead. Placement inherited this behavior from nova, where using a global CONF is the normal way to interact with the configuration options. Continuing this pattern in placement made it difficult for nova to use externalized placement in its functional tests, so the situation was changed. We’d like to keep it this way as it makes the code easier to maintain.