Charm spec for openstack+ovn under specs/queens/backlog.

Change-Id: I07ce4503ee7d0ce10dce41b7912abbfa00f3736c
This commit is contained in:
AakashKT 2018-03-12 00:26:03 +05:30
parent 6b67435ad2
commit 6e07e55d8c
1 changed files with 123 additions and 0 deletions

View File

@ -0,0 +1,123 @@
..
Copyright 2018 Aakash KT
This work is licensed under a Creative Commons Attribution 3.0
Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode
..
This template should be in ReSTructured text. Please do not delete
any of the sections in this template. If you have nothing to say
for a whole section, just write: "None". For help with syntax, see
http://sphinx-doc.org/rest.html To test out your formatting, see
http://www.tele3.cz/jbar/rest/rest.html
===============================
OpenStack with OVN
===============================
Openstack can be deployed with a number of SDN solutions (e.g. ODL). OVN provides
virtual-networking for Open vSwitch (OVS). OVN has a lot of desirable features and
is designed to be integrated into Openstack, among others.
Since there is already a networking-ovn project under openstack, it is the obvious
next step to implement a Juju charm that provides this service.
Problem Description
===================
Currently, Juju charms have support for deploying openstack, either with it's
default SDN solution (Neutron), or with others such as ODL. This project
will expand the deployment scenarios under Juju for openstack by including OVN in the
list of available SDN solutions.
This will also benefit OPNFV's JOID installer in providing another scenario in its deployment.
Proposed Change
===============
Charms implementing neutron-api, ovn-controller and neutron-ovn will need to be implemented.
These will be written using the new reactive framework of Juju.
Charm : neutron-ovn
-------------------
This charm will be deployed alongside nova-compute deployments. This will be a subordinate
charm to nova-compute, that installs and runs openvswitch and the ovn-controller.
Charm : ovn-controller
----------------------
This charm will deploy ovn itself. It will start the OVN services (ovsdb-server, ovn-northd).
Since there can only be a single instance of ovsdb-server and ovn-northd in a deployment,
we can also implement passive HA, but this can be included in further revisions of this charm.
Charm : neutron-api-ovn
-----------------------
This charm will provide the api only integration of neutron to OVN. This charm will need to be
subordinate to the existing neutron-api charm. The main task of this charm is to setup the
"neutron.conf" and "ml2_ini.conf" config files with the right parameters for OVN.
The principal charm, neutron-api, handles the install and restart for neutron-server.
Refer for more information : https://docs.openstack.org/networking-ovn/latest/install/manual.html
Implementation
==============
Assignee(s)
-----------
Aakash KT
Gerrit Topic
------------
Use Gerrit topic "charm-os-ovn" for all patches related to this spec.
.. code-block:: bash
git-review -t charm-os-ovn
Work Items
----------
* Implement neutron-api-ovn charm
* Implement ovn-controller charm
* Implement neutron-ovn charm
* Integration testing
* Create a bundle to deploy OpenStack OVN
* Create documentation for above three charms
Repositories
------------
Yes, three new repositories will need to be created :
* charm-neutron-api-ovn
* charm-ovn-controller
* charm-neuton-ovn
Documentation
-------------
This will require creation of new documentation for the covered scenario of
openstack + ovn in Juju.
A README file for the bundle needs to be written.
Add documentation in charm-deployment guide to detail how to deploy OVN with
OpenStack.
Security
--------
Communications to and from these charms should be made secure. For eg.
communication between ovn-central and ovn-edges to be made secure using
self-signed certs.
Testing
-------
For testing at Juju level, we can use the new "juju-matrix" tool.
For testing functionality at OpenStack level, Mojo should be used. This will
help validate the deployment.
Dependencies
============
This charm will support OpenStack Queens as its baseline.