governance/goals/pike/deploy-api-in-wsgi.rst

594 lines
8.1 KiB
ReStructuredText

.. -*- mode: rst -*-
================================================
Control Plane API endpoints deployment via WSGI
================================================
In some projects, API services can be run:
#. As a Python command that runs a web server (e.g. wsgiref or werkzeug).
#. As a WSGI application hosted by performant web servers (e.g. Apache with
mod_wsgi or Nginx with uWSGI).
When a project provides a WSGI application the API service gains flexibility
in terms of deployment, performance, configuration and scaling.
Gerrit Topic
============
To facilitate tracking, commits related to this goal should use the
gerrit topic::
goal-deploy-api-in-wsgi
Completion Criteria
===================
For all projects:
#. Provide WSGI application script file(s) (e.g. to be used by web server).
There shouldn't be any web server restriction and the application could be
deploying to any web server that support WSGI applications.
#. Switch devstack jobs to deploy control-plane API services in WSGI with Apache.
Usage of Apache is already the default in Devstack, let's keep using it
for consistency unless there is some efforts to support another web server but
this is not the case at this time.
References
==========
Reference documentation for the existing WSGI deployments:
* http://docs.openstack.org/developer/keystone/apache-httpd.html
* http://docs.openstack.org/developer/ceilometer/install/mod_wsgi.html
Current State / Anticipated Impact
==================================
On 12 Jan 2017 a review of git repositories owned by big tent project
showed the projects that don't support their control-plane API services deployed
via WSGI:
.. (emilien) I built this list based on my research. Please comment if
something is wrong or missing.
This list reflects the projects where API can't be deployed via WSGI.
* cloudkitty
* congress
* designate
* freezer
* glance
* kuryr
* magnum
* murano
* neutron
* octavia
* searchlight
* solum
* tacker
* trove
* vitrage
* watcher
* zun
.. (emilien) TODO
These projects already deploy devstack with API service via WSGI:
* aodh
* ceilometer
* cinder
* gnocchi
* ironic
* keystone
* mistral
* nova
* panko
* swift
* zaqar
* (...)
Project Teams
=============
barbican
--------
Planning Artifacts:
* https://blueprints.launchpad.net/barbican/+spec/goal-deploy-api-in-wsgi
Completion Artifacts:
Chef OpenStack
--------------
Planning Artifacts:
Completion Artifacts:
cinder
------
Planning Artifacts:
Completion Artifacts:
cloudkitty
----------
Planning Artifacts:
Completion Artifacts:
Community App Catalog
---------------------
Planning Artifacts:
Completion Artifacts:
congress
--------
Planning Artifacts:
Completion Artifacts:
designate
---------
Planning Artifacts:
Completion Artifacts:
Documentation
-------------
Planning Artifacts:
Completion Artifacts:
dragonflow
----------
Planning Artifacts:
Completion Artifacts:
ec2-api
-------
Planning Artifacts:
Completion Artifacts:
freezer
-------
Planning Artifacts:
Completion Artifacts:
fuel
----
Planning Artifacts:
Completion Artifacts:
glance
------
Planning Artifacts:
* `Glance Spec Lite
<http://specs.openstack.org/openstack/glance-specs/specs/pike/approved/glance/lite-specs.html>`_
Completion Artifacts:
heat
----
Planning Artifacts:
Completion Artifacts:
horizon
-------
Planning Artifacts:
Completion Artifacts:
I18n
----
Planning Artifacts:
* The I18n team does not have any API services and therefore has
nothing to do
Completion Artifacts:
* None
Infrastructure
--------------
Planning Artifacts:
Completion Artifacts:
ironic
------
Planning Artifacts:
RFE: https://bugs.launchpad.net/ironic/+bug/1513005
Completion Artifacts:
karbor
------
Planning Artifacts:
Completion Artifacts:
keystone
--------
Planning Artifacts:
* Keystone has no planning documents at this time since support was
introduced prior to Kilo.
Completion Artifacts:
* http://git.openstack.org/cgit/openstack-dev/devstack/commit/?id=a00e5f8810b6ca3b0b5d63cc228125e19bc91955
kolla
-----
Planning Artifacts:
Completion Artifacts:
kuryr
-----
Planning Artifacts:
Completion Artifacts:
magnum
------
Planning Artifacts:
Completion Artifacts:
manila
------
Planning Artifacts:
Completion Artifacts:
mistral
-------
Planning Artifacts:
Completion Artifacts:
monasca
-------
Planning Artifacts:
Completion Artifacts:
murano
------
Planning Artifacts:
Completion Artifacts:
neutron
-------
Planning Artifacts:
Completion Artifacts:
nova
----
Planning Artifacts:
Completion Artifacts:
octavia
-------
Planning Artifacts:
Completion Artifacts:
OpenStack Charms
----------------
Planning Artifacts:
Completion Artifacts:
OpenStack UX
------------
Planning Artifacts:
Completion Artifacts:
OpenStackAnsible
----------------
Planning Artifacts:
Completion Artifacts:
OpenStackClient
---------------
Planning Artifacts:
Completion Artifacts:
oslo
----
Planning Artifacts:
Completion Artifacts:
Packaging-deb
-------------
Planning Artifacts:
Completion Artifacts:
Packaging-rpm
-------------
Planning Artifacts:
Completion Artifacts:
Puppet OpenStack
----------------
Planning Artifacts:
Projects where we plan to add support:
* puppet-zaqar
Completion Artifacts:
Projects that already support WSGI deployments for API:
* puppet-aodh
* puppet-barbican
* puppet-ceilometer
* puppet-cinder
* puppet-gnocchi
* puppet-heat
* puppet-ironic
* puppet-keystone
* puppet-mistral
* puppet-nova
* puppet-panko
* puppet-vitrage
Quality Assurance
-----------------
Planning Artifacts:
* The only project that includes a python web application is the API part
of OpenStack Health, which is not an OpenStack control plane service.
OpenStack Health API is deployed as a WSGI application as part of OpenStack
infra. Further details in https://etherpad.openstack.org/p/pike-qa-goals-wsgi.
Completion Artifacts:
* None
rally
-----
Planning Artifacts:
Completion Artifacts:
RefStack
--------
Planning Artifacts:
Completion Artifacts:
Release Management
------------------
Planning Artifacts:
Completion Artifacts:
requirements
------------
Planning Artifacts:
* The requirements team do not have any API services and therefore has
nothing to do.
Completion Artifacts:
* None
sahara
------
Planning Artifacts:
* Update devstack plugin to deploy in WSGI with Apache
* Launchpad bug: https://bugs.launchpad.net/sahara/+bug/1673198
Completion Artifacts:
searchlight
-----------
Planning Artifacts:
Completion Artifacts:
Security
--------
Planning Artifacts:
Completion Artifacts:
senlin
------
Planning Artifacts:
Completion Artifacts:
solum
-----
Planning Artifacts:
* https://blueprints.launchpad.net/solum/+spec/solum-api-under-wsgi
Completion Artifacts:
* Add wsgi script file: https://review.openstack.org/#/c/448400/
* Enable wsgi on devstack jobs: https://review.openstack.org/#/c/448410/
Stable branch maintenance
-------------------------
Planning Artifacts:
* The stable team doesn't have any code repositories and therefore has
nothing to do.
Completion Artifacts:
* None
swift
-----
Planning Artifacts:
Completion Artifacts:
tacker
------
Planning Artifacts:
Completion Artifacts:
Telemetry
---------
Planning Artifacts:
Completion Artifacts:
tricircle
---------
Planning Artifacts:
Completion Artifacts:
tripleo
-------
Planning Artifacts:
During Pike, we plan to migrate some services under WSGI with Apache:
* Heat APIs
* Ironic API when https://bugs.launchpad.net/ironic/+bug/1608252 will
be fixed.
* Mistral API when https://bugs.launchpad.net/mistral/+bug/1663368 will
be fixed.
* Nova API when it will be officially supported by Nova team.
Completion Artifacts:
TripleO already deploy some services under WSGI with Apache:
* Aodh API
* Barbican
* Ceilometer API
* Cinder API
* Gnocchi API
* Keystone
* Nova Placement
* Panko API
trove
-----
Planning Artifacts:
Completion Artifacts:
vitrage
-------
Planning Artifacts:
Completion Artifacts:
watcher
-------
Planning Artifacts:
Completion Artifacts:
winstackers
-----------
Planning Artifacts:
Completion Artifacts:
zaqar
-----
Planning Artifacts:
Completion Artifacts:
zun
---
Planning Artifacts:
Completion Artifacts: