TripleO/Puppet/networking-drivers

This documentation aims to explain how to bring a new Neutron Networking driver in TripleO. The procedure is the same when you would like to add support for any Neutron driver (that works with SDN solutions).

Packaging
The first thing to worry about is to make sure Neutron upstream contains the plugin in its tree. If it's not the case, that means you'll have to manage with downstream custom packages. Also, you need to know which Python libraries you'll need and see if they are packaged in RDO or EPEL. RDO folks use #rdo (freenode) channel.

puppet-neutron
Puppet Neutron module has in charge of configuring and running Neutron services in a dedicated Puppet module. That means it controls all Neutron configuration files, including plugins files. To look and take example from current supported plugins, you can see plugins tree. It's important to follow Puppet code conventions, add documentation and unit testing, otherwise the patches will get negative reviews. Feel free to join #puppet-openstack (freenode) to discuss further.

tripleo-heat-templates
TripleO Heat Templates are the interface between TripleO and Puppet modules. in "puppet" directory, you'll find manifests that are the composition layer and call Puppet modules, with parameters defined by Heat templates. You'll also find Hieradata configuration so you can apply parameters to a specific hierarchy. The manifests you'll need to patch are controller, controller-pacemaker and eventually compute.

TripleO folks use #tripleo (freenode) channel.

Examples with Bigswitch

 * THT patch
 * puppet-neutron patch