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.