Add neutron-openvswitch-agent contianer

Implements the neutron-openvswitch-agent plugin container.

Co-Authored-By: Sam Yaple <sam@yaple.net>
Partially Implements blueprint: openvswitch-container

Change-Id: Ie0fa318541e16d730b7007d3620c7873e898ed4a
This commit is contained in:
Fang Fenghua 2015-05-10 22:45:36 +08:00 committed by Sam Yaple
parent e8535fc361
commit 74010ff986
7 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,11 @@
FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base
MAINTAINER Kolla Project (https://launchpad.net/kolla)
# Install required packages
RUN yum install -y openstack-neutron-openvswitch \
openvswitch \
&& yum clean all
COPY check.sh start.sh /
CMD ["/start.sh"]

View File

@ -0,0 +1 @@
../../../../../tools/build-docker-image

View File

@ -0,0 +1 @@
../../../../common/neutron/neutron-openvswitch-agent/check.sh

View File

@ -0,0 +1 @@
../../../../common/neutron/neutron-openvswitch-agent/start.sh

View File

@ -0,0 +1,13 @@
#!/bin/bash
RES=0
check=$(/usr/bin/neutron agent-list | awk '/ vSwitch / {print $10}')
error="ERROR: Neutron OpenvSwitch agent is not alive."
if [[ $check != ":-)" ]]; then
echo $error >&2
RES=1
fi
exit $RES

View File

@ -0,0 +1,45 @@
#!/bin/bash
set -e
. /opt/kolla/config-neutron.sh
. /opt/kolla/config-sudoers.sh
: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1}
: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1}
check_required_vars PUBLIC_IP NEUTRON_FLAT_NETWORK_NAME \
NEUTRON_FLAT_NETWORK_INTERFACE
if ! ovs-vsctl show |grep ${NEUTRON_FLAT_NETWORK_INTERFACE} > /dev/null; then
ovs-vsctl add-br ${NEUTRON_FLAT_NETWORK_INTERFACE}
fi
cfg=/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
# Configure ml2_conf.ini
if [[ ${TYPE_DRIVERS} =~ vxlan ]]; then
crudini --set $cfg \
vxlan \
local_ip \
"${PUBLIC_IP}"
fi
crudini --set $cfg \
ovs \
bridge_mappings \
"${NEUTRON_FLAT_NETWORK_NAME}:${NEUTRON_FLAT_NETWORK_INTERFACE}"
crudini --set $cfg \
ovs \
tenant_network_type \
"${TENANT_NETWORK_TYPES}"
if [[ ${TENANT_NETWORK_TYPES} =~ "vlan" ]];then
crudini --set $cfg \
ovs \
network_vlan_ranges \
"${NEUTRON_VLAN_NETWORK_NAME}:${NEUTRON_NETWORK_VLAN_RANGES}"
fi
exec /usr/bin/neutron-openvswitch-agent --config-file /etc/neutron/neutron.conf --config-file $cfg

View File

@ -102,6 +102,8 @@ all containers. This allows a simple method of ensuring every type of node
NEUTRON_SERVER_SERVICE_HOST=<$HOST_IP> - The IP address/hostname used to commuicate with the Neutron API
NEUTRON_SHARED_SECRET=<sharedsecret> - The shared secret used between Neutron/Nova to secure metadata communication
NEUTRON_API_PASTE_CONFIG=</usr/share/neutron/api-paste.ini> - Location of Neutron's API paste config file
NEUTRON_VLAN_NETWORK_NAME=<physnet1> - List of physical_network names with which vlan networks can be created
NEUTRON_NETWORK_VLAN_RANGES=<1:1> - Colon seperated range of addresses
TYPE_DRIVERS=<flat,vxlan> - List of network type driver entrypoints to be loaded
TENANT_NETWORK_TYPES=<flat,vxlan> - List of network_types to allocate as tenant networks
MECHANISM_DRIVERS=<linuxbridge,l2population> - List of networking mechanism driver entrypoints to be loaded