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
Alternatives¶
N/A
Implementation¶
Assignee(s)¶
Aakash KT
Gerrit Topic¶
Use Gerrit topic “charm-os-ovn” for all patches related to this spec.
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-neutron-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.