Bridge between container framework networking and storage models to OpenStack networking and storage abstractions.
Go to file
Taku Fukushima daaa97fbda Implement /NetworkDriver.CreateEndpoint
This patch replaces the mocked version of /NetworkDriver.CreateEndpoint
with the actual Neutron call. This unit test for the endpoint is also
implemented.

libnetwork's Endpoint is mapped into Neutron's subnets and port. The
request to create an Endpoint contains the information of libnetwork's
Interfaces to be managed, however in Neutron there's no single resource
corresponds to the Endpoint.

Therefore Kuryr breaks the Endpoint into the following three pieces.

1. Subnet for Address property in the request
   - Kuryr passes the given Address property to CIDR for the request
     against Neutron API as it is
2. Subnet for AddressIPv6 property in the request
   - Kuryr passes the given AddressIPv6 property to CIDR for the request
     against Neutron API as it is
3. Port which MAC address is the same as MacAddress property in the
   request

To distinguish Neutorn subnets created in 1. and 2., Kuryr names them by
the given EndpointId with the their subnet addresses as the postfixes.
For the Neutron port, Kuryr gives the EndpointID with the index of the
interface and the postfix, "port". For instance, if Address, i.e.,
10.0.1.1/24, and AddressIPV6, i.e., fe80::f816:3eff:fe20:57c4/64, which
corresponding Neutron subnets don't exist are given in a request against
/NetworkDriver.CreateEndpoint, the following subnets and a port will be
created.

* 98953db3f8e6628caf4a7cad3c866cb090654e3dee3e37206ad8c0a81355f1b7-10.0.1.0
* 98953db3f8e6628caf4a7cad3c866cb090654e3dee3e37206ad8c0a81355f1b7-fe80::
* 98953db3f8e6628caf4a7cad3c866cb090654e3dee3e37206ad8c0a81355f1b7-0-port

In the process 1. and 2., Kuryr doesn't specify the allocation list for
the addresses and it's the responsibility of Neutron to allocate an
appropriate set of the addresses.

In the latter workflow, where a container joins the network and be
assinged for the specific address, Kuryr binds the container with the
created port which IP address that is allocated in this phase.

This patch implements the following IPAM blueprint in Kuryr partially
except for retrieving the names of the default subnets from the config
file:

https://blueprints.launchpad.net/kuryr/+spec/ipam

Change-Id: I1798b3baff56e285059435f2b8620f36811b580f
Signed-off-by: Taku Fukushima <f.tac.mac@gmail.com>
2015-09-15 19:50:41 +09:00
doc/source Add design and devref section in documentation 2015-09-07 13:36:06 +03:00
etc Add a script to start Kuryr 2015-07-27 19:40:49 +09:00
kuryr Implement /NetworkDriver.CreateEndpoint 2015-09-15 19:50:41 +09:00
scripts Add a script to start Kuryr 2015-07-27 19:40:49 +09:00
tools Stop unneeded cloning of Neutron during CI 2015-09-08 11:07:11 +00:00
.gitignore Add .gitignore file 2015-07-15 07:46:16 +00:00
.gitreview Added .gitreview 2015-07-14 18:00:33 +00:00
.testr.conf Initial template commit 2015-07-15 10:00:44 +03: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
MANIFEST.in Initial template commit 2015-07-15 10:00:44 +03:00
README.rst Wrap readme to 80 chars 2015-09-11 20:28:35 -07:00
__init__.py 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
openstack-common.conf Initial template commit 2015-07-15 10:00:44 +03:00
requirements.txt Implement /NetworkDriver.CreateEndpoint 2015-09-15 19:50:41 +09:00
setup.cfg Initial template commit 2015-07-15 10:00:44 +03:00
setup.py Initial template commit 2015-07-15 10:00:44 +03:00
test-requirements.txt Removing unused dependency: discover 2015-08-28 17:50:42 +02:00
tox.ini Stop unneeded cloning of Neutron during CI 2015-09-08 11:07:11 +00:00

README.rst

kuryr

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.

Features

  • TODO

Prerequisites

$ sudo pip install -r requirements.txt

Running Kuryr

Please run the following script, it creates /usr/lib/docker/plugins/kuryr and the JSON spec file, /usr/lib/docker/plugins/kuryr/kuryr.json, if they don't exist.

$ ./scripts/run_kuryr.sh

Testing Kuryr

$ tox