|  | ============= | 
|  | Quo Vadimus | 
|  | ============= | 
|  |  | 
|  | Where are we going? | 
|  |  | 
|  | This is a document in Devstack to outline where we are headed in the | 
|  | future. The future might be near or far, but this is where we'd like | 
|  | to be. | 
|  |  | 
|  | This is intended to help people contribute, because it will be a | 
|  | little clearer if a contribution takes us closer to or further away to | 
|  | our end game. | 
|  |  | 
|  | ================== | 
|  | Default Services | 
|  | ================== | 
|  |  | 
|  | Devstack is designed as a development environment first. There are a | 
|  | lot of ways to compose the OpenStack services, but we do need one | 
|  | default. | 
|  |  | 
|  | That should be the Compute Layer (currently Glance + Nova + Cinder + | 
|  | Neutron Core (not advanced services) + Keystone). It should be the | 
|  | base building block going forward, and the introduction point of | 
|  | people to OpenStack via Devstack. | 
|  |  | 
|  | ================ | 
|  | Service Howtos | 
|  | ================ | 
|  |  | 
|  | Starting from the base building block all services included in | 
|  | OpenStack should have an overview page in the Devstack | 
|  | documentation. That should include the following: | 
|  |  | 
|  | - A helpful high level overview of that service | 
|  | - What it depends on (both other OpenStack services and other system | 
|  | components) | 
|  | - What new daemons are needed to be started, including where they | 
|  | should live | 
|  |  | 
|  | This provides a map for people doing multinode testing to understand | 
|  | what portions are control plane, which should live on worker nodes. | 
|  |  | 
|  | Service how to pages will start with an ugly "This team has provided | 
|  | no information about this service" until someone does. | 
|  |  | 
|  | =================== | 
|  | Included Services | 
|  | =================== | 
|  |  | 
|  | Devstack doesn't need to eat the world. Given the existence of the | 
|  | external devstack plugin architecture, the future direction is to move | 
|  | the bulk of the support code out of devstack itself and into external | 
|  | plugins. | 
|  |  | 
|  | This will also promote a more clean separation between services. | 
|  |  | 
|  | ============================= | 
|  | Included Backends / Drivers | 
|  | ============================= | 
|  |  | 
|  | Upstream Devstack should only include Open Source backends / drivers, | 
|  | it's intent is for Open Source development of OpenStack. Proprietary | 
|  | drivers should be supported via external plugins. | 
|  |  | 
|  | Just being Open Source doesn't mean it should be in upstream Devstack | 
|  | if it's not required for base development of OpenStack | 
|  | components. When in doubt, external plugins should be used. | 
|  |  | 
|  | ======================================== | 
|  | OpenStack Services vs. System Services | 
|  | ======================================== | 
|  |  | 
|  | ENABLED_SERVICES is currently entirely too overloaded. We should have | 
|  | a separation of actual OpenStack services that you have to run (n-cpu, | 
|  | g-api) and required backends like mysql and rabbitmq. | 
|  |  | 
|  | =========================== | 
|  | Splitting up of Functions | 
|  | =========================== | 
|  |  | 
|  | The functions-common file has grown over time, and needs to be split | 
|  | up into smaller libraries that handle specific domains. | 
|  |  | 
|  | ====================== | 
|  | Testing of Functions | 
|  | ====================== | 
|  |  | 
|  | Every function in a functions file should get tests. The devstack | 
|  | testing framework is young, but we do have some unit tests for the | 
|  | tree, and those should be enhanced. | 
|  |  | 
|  | ============================== | 
|  | Not Co-Gating with the World | 
|  | ============================== | 
|  |  | 
|  | As projects spin up functional test jobs, Devstack should not be | 
|  | co-gated with every single one of those. The Devstack team has one of | 
|  | the fastest turn arounds for blocking bugs of any Open Stack | 
|  | project. | 
|  |  | 
|  | Basic service validation should be included as part of Devstack | 
|  | installation to mitigate this. | 
|  |  | 
|  | ============================ | 
|  | Documenting all the things | 
|  | ============================ | 
|  |  | 
|  | Devstack started off as an explanation as much as an install | 
|  | script. We would love contributions to that further enhance the | 
|  | comments and explanations about what is happening, even if it seems a | 
|  | little pedantic at times. |