cbca2da4b7
Change-Id: I3655e32d9e9d8cfb9ed85e3d2d28ea9c3c16a470
195 lines
4.3 KiB
ReStructuredText
195 lines
4.3 KiB
ReStructuredText
========================
|
|
Team and repository tags
|
|
========================
|
|
|
|
.. image:: https://governance.openstack.org/badges/kuryr.svg
|
|
:target: https://governance.openstack.org/reference/tags/index.html
|
|
|
|
.. Change things from this point on
|
|
|
|
===============================
|
|
kuryr
|
|
===============================
|
|
|
|
.. image:: https://raw.githubusercontent.com/openstack/kuryr/master/doc/images/kuryr_logo.png
|
|
:alt: Kuryr mascot
|
|
:align: center
|
|
|
|
|
|
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: https://docs.openstack.org/kuryr/latest/
|
|
* Source: https://opendev.org/openstack/kuryr
|
|
* Bugs: https://bugs.launchpad.net/kuryr
|
|
|
|
Features
|
|
--------
|
|
|
|
* TODO
|
|
|
|
|
|
Getting Code
|
|
------------
|
|
|
|
::
|
|
|
|
$ git clone https://opendev.org/openstack/kuryr.git
|
|
$ cd kuryr
|
|
|
|
Prerequisites
|
|
-------------
|
|
|
|
::
|
|
|
|
$ sudo pip install -r requirements.txt
|
|
|
|
|
|
Installing Kuryr's libnetwork driver
|
|
------------------------------------
|
|
|
|
For kuryr-libnetwork driver installation refer:
|
|
|
|
https://docs.openstack.org/kuryr-libnetwork/latest/readme.html
|
|
|
|
|
|
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_type = v3password
|
|
auth_url = http://127.0.0.1:5000
|
|
region_name = regionOne
|
|
user_doamin_name = Default
|
|
username = admin
|
|
project_domain_name = Default
|
|
project_name = service
|
|
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
|
|
|
|
By default, Kuryr will use veth pairs for performing the binding. However, the
|
|
Kuryr library ships with two other drivers that you can configure in the
|
|
**binding** section::
|
|
|
|
[binding]
|
|
#driver = kuryr.lib.binding.drivers.ipvlan
|
|
#driver = kuryr.lib.binding.drivers.macvlan
|
|
|
|
Drivers may make use of other **binding** options. Both Kuryr library drivers in
|
|
the previous snippet can be further configured setting the interface that will
|
|
act as link interface for the virtual devices::
|
|
|
|
link_iface = enp4s0
|
|
|
|
|
|
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/run_kuryr.sh
|
|
|
|
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 <http://docs.pyroute2.org/>`_ to run.
|
|
|
|
Testing Kuryr
|
|
-------------
|
|
|
|
For a quick check that Kuryr is working create a network:
|
|
|
|
::
|
|
|
|
$ docker network create --driver kuryr test_net
|
|
785f8c1b5ae480c4ebcb54c1c48ab875754e4680d915b270279e4f6a1aa52283
|
|
$ 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 <https://pypi.python.org/pypi/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 openstackdocstheme 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
|