Docker remote driver for OpenStack Neutron
Go to file
OpenStack Proposal Bot d64d5971ba Updated from global requirements
Change-Id: I622e0a0d3fc843bf9ea2447b1dde3a3bba29dafe
2016-06-16 16:09:29 +00:00
contrib Merge "[Tryfix] Increase the default RAM in vagrantfile" 2016-05-27 20:23:41 +00:00
devstack Kuryr did not detect neutron tag plugin in devstack 2016-06-06 16:47:06 +08:00
doc Merge "Eliminate unecessary ", or" in watcher design devref" 2016-06-15 14:43:51 +00:00
etc Activate libnetwork plugin with .spec instead of .json 2016-04-21 18:15:56 -07:00
init Add upstart config file 2016-02-15 20:54:38 +01:00
kuryr Merge "Releasing address for the gateway address" 2016-06-16 14:27:15 +00:00
rally-jobs Add rally case for create and delete network 2016-03-07 13:57:44 +08:00
releasenotes/notes Use reno for release notes 2015-12-14 09:41:51 -06:00
scripts Modify to accepts arguments 2016-04-14 18:19:42 +09:00
tools Make sure correct branch of Neutron is pulled on testing 2015-12-12 20:12:34 +02:00
usr/libexec/kuryr Merge "Add support for VIF_TYPE_TAP" 2016-05-09 19:57:32 +00:00
.coveragerc Exclude tests from coverage 2015-10-08 21:37:54 +09:00
.gitignore Allow for user specified local.conf changes with Vagrant 2015-12-28 15:34:18 -06:00
.gitreview Added .gitreview 2015-07-14 18:00:33 +00:00
.testr.conf Separate unit tests from fullstack tests 2015-12-08 09:08:04 +02:00
CONTRIBUTING.rst Initial template commit 2015-07-15 10:00:44 +03:00
HACKING.rst Initial template commit 2015-07-15 10:00:44 +03:00
LICENSE Initial template commit 2015-07-15 10:00:44 +03:00 Remove '' 2016-01-25 14:46:06 +08:00
README.rst Fix ReadMe for config file generation info 2016-06-09 21:50:52 +05:30 Add entrypoint of Kuryr 2015-07-27 19:40:49 +09:00
babel.cfg Initial template commit 2015-07-15 10:00:44 +03:00
requirements.txt Updated from global requirements 2016-06-16 16:09:29 +00:00
setup.cfg Install new 'tap' driver file 2016-05-16 18:35:05 +01:00 Updated from global requirements 2016-02-19 02:32:25 +00:00
test-requirements.txt Updated from global requirements 2016-05-11 17:23:45 +00:00
tox.ini Switch to using hacking checks from neutron-lib 2016-04-24 23:21:10 -05:00



Kuryr mascot

Docker for OpenStack Neutron

Kuryr is a Docker network plugin that uses Neutron to provide networking services to Docker containers. It provides containerised images for the common Neutron plugins.


  • TODO


$ sudo pip install -r requirements.txt

Installing Kuryr's libnetwork driver

Running the following will grab the requirements and install kuryr

$ sudo pip install .

Configuring Kuryr

Generate sample config, etc/kuryr.conf.sample, running the following

$ tox -e genconfig

Rename and copy config file at required path

$ cp etc/kuryr.conf.sample /etc/kuryr/kuryr.conf

Edit keystone section in /etc/kuryr/kuryr.conf, replace ADMIN_PASSWORD:

auth_uri =
admin_user = admin
admin_tenant_name = service
admin_password = ADMIN_PASSWORD

In the same file uncomment the bindir parameter with the path for the Kuryr vif binding executables:

bindir = /usr/local/libexec/kuryr

Running Kuryr

Currently, Kuryr utilizes a bash script to start the service. Make sure that you have installed tox before the execution of the below command.

$ sudo ./scripts/

After the booting, please restart your Docker service, e.g.,

$ sudo service docker restart

The bash script creates the following file if it is missing.

  • /usr/lib/docker/plugins/kuryr/kuryr.json: Json spec file for libnetwork.

Note the root privilege is required for creating and deleting the veth pairs with pyroute2 to run.

Testing Kuryr

For a quick check that Kuryr is working create a network:

$ docker network create --driver kuryr test_net
$ docker network ls
NETWORK ID          NAME                DRIVER
785f8c1b5ae4        test_net            kuryr

To test it with tox:

$ tox

You can also run specific test cases using the -e flag, e.g., to only run the fullstack test case.

$ tox -e fullstack

Generating Documentation

We use Sphinx to maintain the documentation. You can install Sphinx using pip.

$ pip install -U Sphinx

In addition to Sphinx you will also need the following requirements (not covered by requirements.txt):

$ pip install oslosphinx reno 'reno[sphinx]'

The source code of the documentation are under doc, you can generate the html files using the following command. If the generation succeeds,a build/html dir will be created under doc.

$ cd doc
$ make html

Now you can serve the documentation at http://localhost:8080 as a simple website.

$ cd build/html
$ python -m SimpleHTTPServer 8080