Merge "Openvswitch image build"
This commit is contained in:
commit
03dd1091bd
@ -0,0 +1,18 @@
|
||||
FROM fedora:23
|
||||
MAINTAINER Ton Ngo "ton@us.ibm.com"
|
||||
WORKDIR /
|
||||
RUN dnf -y install openvswitch \
|
||||
openstack-neutron-ml2 \
|
||||
openstack-neutron-openvswitch \
|
||||
bridge-utils \
|
||||
git \
|
||||
&& dnf clean all
|
||||
RUN cd /opt \
|
||||
&& git clone https://git.openstack.org/openstack/neutron \
|
||||
&& cp neutron/etc/policy.json /etc/neutron/. \
|
||||
&& rm -rf neutron \
|
||||
&& dnf -y remove git
|
||||
VOLUME /var/run/openvswitch
|
||||
ADD run_openvswitch_neutron.sh /usr/bin/run_openvswitch_neutron.sh
|
||||
|
||||
CMD ["/usr/bin/run_openvswitch_neutron.sh"]
|
@ -0,0 +1,68 @@
|
||||
===================
|
||||
Neutron Openvswitch
|
||||
===================
|
||||
|
||||
This Dockerfile creates a Docker image based on Fedora 23 that runs
|
||||
Openvswitch and the Neutron L2 agent for Openvswitch. This container
|
||||
image is used by Magnum when a Swarm cluster is deployed with the
|
||||
attribute::
|
||||
|
||||
--network-driver=kuryr
|
||||
|
||||
Magnum deploys this container on each Swarm node along with the
|
||||
Kuryr container to support Docker advanced networking based on
|
||||
the `Container Networking Model
|
||||
<https://github.com/docker/libnetwork/blob/master/docs/design.md>`_.
|
||||
|
||||
To build the image, run this command in the same directory as the
|
||||
Dockerfile::
|
||||
|
||||
docker build -t openstackmagnum/fedora23-neutron-ovs:testing .
|
||||
|
||||
This image is available on Docker Hub as::
|
||||
|
||||
openstackmagnum/fedora23-neutron-ovs:testing
|
||||
|
||||
To update the image with a new build::
|
||||
|
||||
docker push openstackmagnum/fedora23-neutron-ovs:testing
|
||||
|
||||
The 'testing' tag may be replaced with 'latest' or other tag as
|
||||
needed.
|
||||
|
||||
This image is intended to run on the Fedora Atomic public image which
|
||||
by default does not have these packages installed. The common
|
||||
practice for Atomic OS is to run new packages in containers rather
|
||||
than installing them in the OS.
|
||||
|
||||
For the Neutron agent, you will need to provide 3 files at these
|
||||
locations:
|
||||
|
||||
- /etc/neutron/neutron.conf
|
||||
- /etc/neutron/policy.json
|
||||
- /etc/neutron/plugins/ml2/ml2_conf.ini
|
||||
|
||||
These files are typically installed in the same locations on the
|
||||
Neutron controller node. The policy.json file is copied into the
|
||||
Docker image because it is fairly static and does not require
|
||||
customization for the bay. If it is changed in the Neutron master
|
||||
repo, you just need to rebuild the Docker image to update the file.
|
||||
Magnum will create the other 2 files on each bay node in the
|
||||
directory /etc/kuryr and map them to the proper directories in
|
||||
the container using the Docker -v option.
|
||||
|
||||
Since Openvswitch needs to operate on the host network name space,
|
||||
the Docker container will need the -net=host option.
|
||||
The /var/run/openvswitch directory is also mapped to the bay node
|
||||
so that the Kuryr container can talk to openvswitch.
|
||||
To run the image from Fedora Atomic::
|
||||
|
||||
docker run --net=host \
|
||||
--cap-add=NET_ADMIN \
|
||||
--privileged=true \
|
||||
-v /var/run/openvswitch:/var/run/openvswitch \
|
||||
-v /lib/modules:/lib/modules:ro \
|
||||
-v /etc/kuryr/neutron.conf:/etc/neutron/neutron.conf \
|
||||
-v /etc/kuryr/ml2_conf.ini:/etc/neutron/plugins/ml2/ml2_conf.ini \
|
||||
--name openvswitch-agent \
|
||||
openstackmagnum/fedora23-neutron-ovs:testing
|
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
/usr/share/openvswitch/scripts/ovs-ctl start --system-id=random
|
||||
/usr/bin/neutron-openvswitch-agent --config-file /etc/neutron/neutron.conf --log-file /var/log/neutron/openvswitch-agent.log
|
Loading…
Reference in New Issue
Block a user