blob: 11bea30f0b2dffa0bf41e348e9f8a8a4af813c2d [file] [log] [blame]
Sean Dague2e17d852015-01-28 06:29:03 -08001=============
2 Quo Vadimus
3=============
4
5Where are we going?
6
7This is a document in Devstack to outline where we are headed in the
8future. The future might be near or far, but this is where we'd like
9to be.
10
11This is intended to help people contribute, because it will be a
12little clearer if a contribution takes us closer to or further away to
13our end game.
14
15==================
16 Default Services
17==================
18
19Devstack is designed as a development environment first. There are a
20lot of ways to compose the OpenStack services, but we do need one
21default.
22
23That should be the Compute Layer (currently Glance + Nova + Cinder +
24Neutron Core (not advanced services) + Keystone). It should be the
25base building block going forward, and the introduction point of
26people to OpenStack via Devstack.
27
28================
29 Service Howtos
30================
31
32Starting from the base building block all services included in
33OpenStack should have an overview page in the Devstack
34documentation. That should include the following:
35
36- A helpful high level overview of that service
37- What it depends on (both other OpenStack services and other system
38 components)
39- What new daemons are needed to be started, including where they
40 should live
41
42This provides a map for people doing multinode testing to understand
43what portions are control plane, which should live on worker nodes.
44
45Service how to pages will start with an ugly "This team has provided
46no information about this service" until someone does.
47
48===================
49 Included Services
50===================
51
52Devstack doesn't need to eat the world. Given the existence of the
53external devstack plugin architecture, the future direction is to move
54the bulk of the support code out of devstack itself and into external
55plugins.
56
57This will also promote a more clean separation between services.
58
59=============================
60 Included Backends / Drivers
61=============================
62
63Upstream Devstack should only include Open Source backends / drivers,
64it's intent is for Open Source development of OpenStack. Proprietary
65drivers should be supported via external plugins.
66
67Just being Open Source doesn't mean it should be in upstream Devstack
68if it's not required for base development of OpenStack
69components. When in doubt, external plugins should be used.
70
71========================================
72 OpenStack Services vs. System Services
73========================================
74
75ENABLED_SERVICES is currently entirely too overloaded. We should have
76a separation of actual OpenStack services that you have to run (n-cpu,
77g-api) and required backends like mysql and rabbitmq.
78
79===========================
80 Splitting up of Functions
81===========================
82
83The functions-common file has grown over time, and needs to be split
84up into smaller libraries that handle specific domains.
85
86======================
87 Testing of Functions
88======================
89
90Every function in a functions file should get tests. The devstack
91testing framework is young, but we do have some unit tests for the
92tree, and those should be enhanced.
93
94==============================
95 Not Co-Gating with the World
96==============================
97
98As projects spin up functional test jobs, Devstack should not be
99co-gated with every single one of those. The Devstack team has one of
100the fastest turn arounds for blocking bugs of any Open Stack
101project.
102
103Basic service validation should be included as part of Devstack
104installation to mitigate this.
105
106============================
107 Documenting all the things
108============================
109
110Devstack started off as an explanation as much as an install
111script. We would love contributions to that further enhance the
112comments and explanations about what is happening, even if it seems a
113little pedantic at times.