Docker remote driver for OpenStack Neutron
daaa97fbda
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> |
||
---|---|---|
doc/source | ||
etc | ||
kuryr | ||
scripts | ||
tools | ||
__init__.py | ||
.gitignore | ||
.gitreview | ||
.testr.conf | ||
babel.cfg | ||
CONTRIBUTING.rst | ||
HACKING.rst | ||
LICENSE | ||
MANIFEST.in | ||
openstack-common.conf | ||
README.rst | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
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.
- Free software: Apache license
- Documentation: http://docs.openstack.org/developer/kuryr
- Source: http://git.openstack.org/cgit/openstack/kuryr
- Bugs: http://bugs.launchpad.net/kuryr
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