From ed107a5e26f35351a178c12eed5cd38c086409db Mon Sep 17 00:00:00 2001 From: Daneyon Hansen Date: Tue, 7 Apr 2015 19:34:40 +0000 Subject: Adds Neutron Agents Support Previously, the agents ran in seperate containers. Since some of the agents create and use network namespaces, runnning them in seperate containers has become a challenge. This patch adds neutron agent support in a single container. Partially Implements: blueprint compute-operation-neutron Change-Id: If4f893abd50d90b58e8435ec2659870dce36951c --- docker/neutron/agents/dhcp/Dockerfile | 13 --- docker/neutron/agents/dhcp/build | 1 - docker/neutron/agents/dhcp/check.sh | 13 --- docker/neutron/agents/dhcp/start.sh | 46 --------- docker/neutron/agents/dhcp/sudoers.sh | 12 --- docker/neutron/agents/l3/Dockerfile | 13 --- docker/neutron/agents/l3/build | 1 - docker/neutron/agents/l3/check.sh | 13 --- docker/neutron/agents/l3/start.sh | 61 ------------ docker/neutron/agents/l3/sudoers.sh | 12 --- docker/neutron/agents/linux-bridge/Dockerfile | 14 --- docker/neutron/agents/linux-bridge/build | 1 - docker/neutron/agents/linux-bridge/check.sh | 10 -- docker/neutron/agents/linux-bridge/start.sh | 36 ------- docker/neutron/agents/linux-bridge/sudoers.sh | 12 --- docker/neutron/agents/metadata/Dockerfile | 13 --- docker/neutron/agents/metadata/build | 1 - docker/neutron/agents/metadata/check.sh | 13 --- docker/neutron/agents/metadata/start.sh | 64 ------------ docker/neutron/agents/metadata/sudoers.sh | 12 --- docker/neutron/neutron-agents/Dockerfile | 33 +++++++ docker/neutron/neutron-agents/build | 1 + .../check-scripts/check-dhcp-agent.sh | 13 +++ .../neutron-agents/check-scripts/check-l3-agent.sh | 13 +++ .../check-scripts/check-linuxbridge-agent.sh | 13 +++ .../check-scripts/check-metadata-agent.sh | 13 +++ .../config-scripts/config-dhcp-agent.sh | 73 ++++++++++++++ .../config-scripts/config-l3-agent.sh | 80 +++++++++++++++ .../config-scripts/config-linuxbridge-agent.sh | 29 ++++++ .../config-scripts/config-metadata-agent.sh | 74 ++++++++++++++ .../config-scripts/config-sudoers.sh | 12 +++ docker/neutron/neutron-agents/supervisord.conf | 53 ++++++++++ docker/neutron/neutron-base/config-neutron.sh | 110 ++++++++++++--------- docker/neutron/neutron-server/start.sh | 10 ++ docker/nova-base/config-nova.sh | 6 +- 35 files changed, 488 insertions(+), 406 deletions(-) delete mode 100644 docker/neutron/agents/dhcp/Dockerfile delete mode 120000 docker/neutron/agents/dhcp/build delete mode 100755 docker/neutron/agents/dhcp/check.sh delete mode 100755 docker/neutron/agents/dhcp/start.sh delete mode 100644 docker/neutron/agents/dhcp/sudoers.sh delete mode 100644 docker/neutron/agents/l3/Dockerfile delete mode 120000 docker/neutron/agents/l3/build delete mode 100755 docker/neutron/agents/l3/check.sh delete mode 100755 docker/neutron/agents/l3/start.sh delete mode 100644 docker/neutron/agents/l3/sudoers.sh delete mode 100644 docker/neutron/agents/linux-bridge/Dockerfile delete mode 120000 docker/neutron/agents/linux-bridge/build delete mode 100755 docker/neutron/agents/linux-bridge/check.sh delete mode 100755 docker/neutron/agents/linux-bridge/start.sh delete mode 100644 docker/neutron/agents/linux-bridge/sudoers.sh delete mode 100644 docker/neutron/agents/metadata/Dockerfile delete mode 120000 docker/neutron/agents/metadata/build delete mode 100755 docker/neutron/agents/metadata/check.sh delete mode 100755 docker/neutron/agents/metadata/start.sh delete mode 100644 docker/neutron/agents/metadata/sudoers.sh create mode 100644 docker/neutron/neutron-agents/Dockerfile create mode 120000 docker/neutron/neutron-agents/build create mode 100755 docker/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh create mode 100755 docker/neutron/neutron-agents/check-scripts/check-l3-agent.sh create mode 100755 docker/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh create mode 100755 docker/neutron/neutron-agents/check-scripts/check-metadata-agent.sh create mode 100755 docker/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh create mode 100755 docker/neutron/neutron-agents/config-scripts/config-l3-agent.sh create mode 100755 docker/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh create mode 100755 docker/neutron/neutron-agents/config-scripts/config-metadata-agent.sh create mode 100755 docker/neutron/neutron-agents/config-scripts/config-sudoers.sh create mode 100644 docker/neutron/neutron-agents/supervisord.conf (limited to 'docker') diff --git a/docker/neutron/agents/dhcp/Dockerfile b/docker/neutron/agents/dhcp/Dockerfile deleted file mode 100644 index 261d4f40d..000000000 --- a/docker/neutron/agents/dhcp/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base -MAINTAINER Kolla Project (https://launchpad.net/kolla) - -# Install required packages -RUN yum install -y openstack-neutron && yum clean all - -# Add required scripts -ADD ./start.sh /start.sh -ADD ./check.sh /check.sh -ADD ./sudoers.sh /sudoers.sh - -# Configure and run the service -CMD ["/start.sh"] diff --git a/docker/neutron/agents/dhcp/build b/docker/neutron/agents/dhcp/build deleted file mode 120000 index 8d652f7ee..000000000 --- a/docker/neutron/agents/dhcp/build +++ /dev/null @@ -1 +0,0 @@ -../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/neutron/agents/dhcp/check.sh b/docker/neutron/agents/dhcp/check.sh deleted file mode 100755 index 9c36f1996..000000000 --- a/docker/neutron/agents/dhcp/check.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ DHCP / {print $9}') -error="ERROR: Neutron DHCP Agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES diff --git a/docker/neutron/agents/dhcp/start.sh b/docker/neutron/agents/dhcp/start.sh deleted file mode 100755 index 70c846526..000000000 --- a/docker/neutron/agents/dhcp/start.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /sudoers.sh - -: ${INTERFACE_DRIVER:=neutron.agent.linux.interface.BridgeInterfaceDriver} -: ${DHCP_DRIVER:=neutron.agent.linux.dhcp.Dnsmasq} -: ${USE_NAMESPACES:=false} - -check_required_vars VERBOSE_LOGGING DEBUG_LOGGING NEUTRON_DHCP_AGENT_LOG_FILE - -cfg=/etc/neutron/dhcp_agent.ini -neutron_conf=/etc/neutron/neutron.conf - -# Logging -crudini --set $neutron_conf \ - DEFAULT \ - log_file \ - "${NEUTRON_DHCP_AGENT_LOG_FILE}" - -# Configure dhcp_agent.ini -crudini --set $cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - interface_driver \ - "${INTERFACE_DRIVER}" -crudini --set $cfg \ - DEFAULT \ - dhcp_driver \ - "${DHCP_DRIVER}" -crudini --set $cfg \ - DEFAULT \ - use_namespaces \ - "${USE_NAMESPACES}" - -# Start DHCP Agent -exec /usr/bin/neutron-dhcp-agent diff --git a/docker/neutron/agents/dhcp/sudoers.sh b/docker/neutron/agents/dhcp/sudoers.sh deleted file mode 100644 index 198420026..000000000 --- a/docker/neutron/agents/dhcp/sudoers.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# Neutron uses rootwrap which requires a tty for sudo. -# Since the container is running in daemon mode, a tty -# is not present and requiretty must be commented out. -if [ ! -f /var/run/sudo-modified ]; then - chmod 0640 /etc/sudoers - sed -i '/Defaults requiretty/s/^/#/' /etc/sudoers - chmod 0440 /etc/sudoers -fi - -touch /var/run/sudo-modified diff --git a/docker/neutron/agents/l3/Dockerfile b/docker/neutron/agents/l3/Dockerfile deleted file mode 100644 index 261d4f40d..000000000 --- a/docker/neutron/agents/l3/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base -MAINTAINER Kolla Project (https://launchpad.net/kolla) - -# Install required packages -RUN yum install -y openstack-neutron && yum clean all - -# Add required scripts -ADD ./start.sh /start.sh -ADD ./check.sh /check.sh -ADD ./sudoers.sh /sudoers.sh - -# Configure and run the service -CMD ["/start.sh"] diff --git a/docker/neutron/agents/l3/build b/docker/neutron/agents/l3/build deleted file mode 120000 index 8d652f7ee..000000000 --- a/docker/neutron/agents/l3/build +++ /dev/null @@ -1 +0,0 @@ -../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/neutron/agents/l3/check.sh b/docker/neutron/agents/l3/check.sh deleted file mode 100755 index b79caf8ff..000000000 --- a/docker/neutron/agents/l3/check.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ L3 / {print $9}') -error="ERROR: Neutron L3 Agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES diff --git a/docker/neutron/agents/l3/start.sh b/docker/neutron/agents/l3/start.sh deleted file mode 100755 index 0ad112165..000000000 --- a/docker/neutron/agents/l3/start.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /sudoers.sh - -: ${INTERFACE_DRIVER:=neutron.agent.linux.interface.BridgeInterfaceDriver} -: ${USE_NAMESPACES:=false} - -check_required_vars VERBOSE_LOGGING DEBUG_LOGGING NEUTRON_L3_AGENT_LOG_FILE - -cfg=/etc/neutron/l3_agent.ini -neutron_conf=/etc/neutron/neutron.conf - -# Logging -crudini --set $neutron_conf \ - DEFAULT \ - log_file \ - "${NEUTRON_L3_AGENT_LOG_FILE}" - -# Configure l3_agent.ini -crudini --set $cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - interface_driver \ - "${INTERFACE_DRIVER}" -crudini --set $cfg \ - DEFAULT \ - gateway_external_network_id \ - "" -crudini --set $cfg \ - DEFAULT \ - external_network_bridge \ - "" -crudini --set $cfg \ - DEFAULT \ - use_namespaces \ - "${USE_NAMESPACES}" - -if [ "${USE_NAMESPACES}" == "false" ] || [ "${USE_NAMESPACES}" == "False" ] ; then - # source Keystone credential file - source /openrc - # Create router if it does not exist - /usr/bin/neutron router-list | grep admin-router || /usr/bin/neutron router-create admin-router - # Set router-id - crudini --set $cfg \ - DEFAULT \ - router_id \ - "$(/usr/bin/neutron router-list | awk '/ admin-router / {print $2}')" -fi - -# Start L3 Agent -exec /usr/bin/neutron-l3-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini --config-file /etc/neutron/fwaas_driver.ini diff --git a/docker/neutron/agents/l3/sudoers.sh b/docker/neutron/agents/l3/sudoers.sh deleted file mode 100644 index 198420026..000000000 --- a/docker/neutron/agents/l3/sudoers.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# Neutron uses rootwrap which requires a tty for sudo. -# Since the container is running in daemon mode, a tty -# is not present and requiretty must be commented out. -if [ ! -f /var/run/sudo-modified ]; then - chmod 0640 /etc/sudoers - sed -i '/Defaults requiretty/s/^/#/' /etc/sudoers - chmod 0440 /etc/sudoers -fi - -touch /var/run/sudo-modified diff --git a/docker/neutron/agents/linux-bridge/Dockerfile b/docker/neutron/agents/linux-bridge/Dockerfile deleted file mode 100644 index b53c30a4f..000000000 --- a/docker/neutron/agents/linux-bridge/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base -MAINTAINER Kolla Project (https://launchpad.net/kolla) - -# Install required packages -RUN yum install -y openstack-neutron \ - openstack-neutron-linuxbridge && yum clean all - -# Add required scripts -ADD ./start.sh /start.sh -ADD ./check.sh /check.sh -ADD ./sudoers.sh /sudoers.sh - -# Configure and run the service -CMD ["/start.sh"] diff --git a/docker/neutron/agents/linux-bridge/build b/docker/neutron/agents/linux-bridge/build deleted file mode 120000 index 8d652f7ee..000000000 --- a/docker/neutron/agents/linux-bridge/build +++ /dev/null @@ -1 +0,0 @@ -../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/neutron/agents/linux-bridge/check.sh b/docker/neutron/agents/linux-bridge/check.sh deleted file mode 100755 index 6b7db95e7..000000000 --- a/docker/neutron/agents/linux-bridge/check.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -RES=0 - -if ! /usr/sbin/brctl show; then - echo "ERROR: brctl show failed" >&2 - RES=1 -fi - -exit $RES diff --git a/docker/neutron/agents/linux-bridge/start.sh b/docker/neutron/agents/linux-bridge/start.sh deleted file mode 100755 index 2ff5a05ed..000000000 --- a/docker/neutron/agents/linux-bridge/start.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /sudoers.sh - -: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1} -: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1} - -check_required_vars PUBLIC_IP NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE - -cfg=/etc/neutron/plugins/ml2/ml2_conf.ini -neutron_conf=/etc/neutron/neutron.conf - -# Logging -crudini --set $neutron_conf \ - DEFAULT \ - log_file \ - "${NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE}" - -# Configure ml2_conf.ini -crudini --set $cfg \ - vxlan \ - local_ip \ - "${PUBLIC_IP}" -crudini --set $cfg \ - linux_bridge \ - physical_interface_mappings \ - "${NEUTRON_FLAT_NETWORK_NAME}:${NEUTRON_FLAT_NETWORK_INTERFACE}" - -#Initialization scripts expect a symbolic link -/usr/bin/ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini - -# Start the linux bridge agent. -exec /usr/bin/neutron-linuxbridge-agent diff --git a/docker/neutron/agents/linux-bridge/sudoers.sh b/docker/neutron/agents/linux-bridge/sudoers.sh deleted file mode 100644 index 198420026..000000000 --- a/docker/neutron/agents/linux-bridge/sudoers.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# Neutron uses rootwrap which requires a tty for sudo. -# Since the container is running in daemon mode, a tty -# is not present and requiretty must be commented out. -if [ ! -f /var/run/sudo-modified ]; then - chmod 0640 /etc/sudoers - sed -i '/Defaults requiretty/s/^/#/' /etc/sudoers - chmod 0440 /etc/sudoers -fi - -touch /var/run/sudo-modified diff --git a/docker/neutron/agents/metadata/Dockerfile b/docker/neutron/agents/metadata/Dockerfile deleted file mode 100644 index 261d4f40d..000000000 --- a/docker/neutron/agents/metadata/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base -MAINTAINER Kolla Project (https://launchpad.net/kolla) - -# Install required packages -RUN yum install -y openstack-neutron && yum clean all - -# Add required scripts -ADD ./start.sh /start.sh -ADD ./check.sh /check.sh -ADD ./sudoers.sh /sudoers.sh - -# Configure and run the service -CMD ["/start.sh"] diff --git a/docker/neutron/agents/metadata/build b/docker/neutron/agents/metadata/build deleted file mode 120000 index 8d652f7ee..000000000 --- a/docker/neutron/agents/metadata/build +++ /dev/null @@ -1 +0,0 @@ -../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/neutron/agents/metadata/check.sh b/docker/neutron/agents/metadata/check.sh deleted file mode 100755 index ba2474d48..000000000 --- a/docker/neutron/agents/metadata/check.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ Metadata / {print $9}') -error="ERROR: Neutron Metadata Agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES diff --git a/docker/neutron/agents/metadata/start.sh b/docker/neutron/agents/metadata/start.sh deleted file mode 100755 index a99574152..000000000 --- a/docker/neutron/agents/metadata/start.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash - -set -e - -. /opt/kolla/config-neutron.sh -. /sudoers.sh - -: ${KEYSTONE_REGION:=RegionOne} - -check_required_vars VERBOSE_LOGGING DEBUG_LOGGING KEYSTONE_AUTH_PROTOCOL \ - KEYSTONE_PUBLIC_SERVICE_HOST ADMIN_TENANT_NAME \ - NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \ - NEUTRON_SHARED_SECRET NOVA_API_SERVICE_HOST \ - NEUTRON_METADATA_AGENT_LOG_FILE - -cfg=/etc/neutron/metadata_agent.ini -neutron_conf=/etc/neutron/neutron.conf - -# Logging -crudini --set $neutron_conf \ - DEFAULT \ - log_file \ - "${NEUTRON_METADATA_AGENT_LOG_FILE}" - -# Configure metadata_agent.ini -crudini --set $cfg \ - DEFAULT \ - verbose \ - "${VERBOSE_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - debug \ - "${DEBUG_LOGGING}" -crudini --set $cfg \ - DEFAULT \ - auth_region \ - "${KEYSTONE_REGION}" -crudini --set $cfg \ - DEFAULT \ - auth_url \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" -crudini --set $cfg \ - DEFAULT \ - admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set $cfg \ - DEFAULT \ - admin_user \ - "${NEUTRON_KEYSTONE_USER}" -crudini --set $cfg \ - DEFAULT \ - admin_password \ - "${NEUTRON_KEYSTONE_PASSWORD}" -crudini --set $cfg \ - DEFAULT \ - nova_metadata_ip \ - "${NOVA_API_SERVICE_HOST}" -crudini --set $cfg \ - DEFAULT \ - metadata_proxy_shared_secret \ - "${NEUTRON_SHARED_SECRET}" - -# Start Metadata Agent -exec /usr/bin/neutron-metadata-agent diff --git a/docker/neutron/agents/metadata/sudoers.sh b/docker/neutron/agents/metadata/sudoers.sh deleted file mode 100644 index 198420026..000000000 --- a/docker/neutron/agents/metadata/sudoers.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# Neutron uses rootwrap which requires a tty for sudo. -# Since the container is running in daemon mode, a tty -# is not present and requiretty must be commented out. -if [ ! -f /var/run/sudo-modified ]; then - chmod 0640 /etc/sudoers - sed -i '/Defaults requiretty/s/^/#/' /etc/sudoers - chmod 0440 /etc/sudoers -fi - -touch /var/run/sudo-modified diff --git a/docker/neutron/neutron-agents/Dockerfile b/docker/neutron/neutron-agents/Dockerfile new file mode 100644 index 000000000..e083aa9b8 --- /dev/null +++ b/docker/neutron/neutron-agents/Dockerfile @@ -0,0 +1,33 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +# Install supervisor +RUN easy_install supervisor + +# Install supervisor-stdout +RUN pip install supervisor-stdout + +# Install required packages +RUN yum install -y openstack-neutron-linuxbridge \ + net-tools \ + && yum clean all + +# Add config scripts +ADD config-scripts/config-linuxbridge-agent.sh /opt/kolla/neutron/ +ADD config-scripts/config-dhcp-agent.sh /opt/kolla/neutron/ +ADD config-scripts/config-l3-agent.sh /opt/kolla/neutron/ +ADD config-scripts/config-metadata-agent.sh /opt/kolla/neutron/ +ADD config-scripts/config-sudoers.sh /opt/kolla/ + +# Add check scripts +ADD check-scripts/check-linuxbridge-agent.sh /opt/kolla/neutron/ +ADD check-scripts/check-dhcp-agent.sh /opt/kolla/neutron/ +ADD check-scripts/check-l3-agent.sh /opt/kolla/neutron/ +ADD check-scripts/check-metadata-agent.sh /opt/kolla/neutron/ + +# Configure supervisord +RUN mkdir -p /var/log/supervisor/ +ADD supervisord.conf /etc/ + +# Start supervisor +CMD ["/usr/bin/supervisord"] diff --git a/docker/neutron/neutron-agents/build b/docker/neutron/neutron-agents/build new file mode 120000 index 000000000..43944faa0 --- /dev/null +++ b/docker/neutron/neutron-agents/build @@ -0,0 +1 @@ +../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh b/docker/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh new file mode 100755 index 000000000..9c36f1996 --- /dev/null +++ b/docker/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ DHCP / {print $9}') +error="ERROR: Neutron DHCP Agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/neutron/neutron-agents/check-scripts/check-l3-agent.sh b/docker/neutron/neutron-agents/check-scripts/check-l3-agent.sh new file mode 100755 index 000000000..b79caf8ff --- /dev/null +++ b/docker/neutron/neutron-agents/check-scripts/check-l3-agent.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ L3 / {print $9}') +error="ERROR: Neutron L3 Agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh b/docker/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh new file mode 100755 index 000000000..96b472490 --- /dev/null +++ b/docker/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ Linux / {print $9}') +error="ERROR: Neutron Linux Bridge agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/neutron/neutron-agents/check-scripts/check-metadata-agent.sh b/docker/neutron/neutron-agents/check-scripts/check-metadata-agent.sh new file mode 100755 index 000000000..ba2474d48 --- /dev/null +++ b/docker/neutron/neutron-agents/check-scripts/check-metadata-agent.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ Metadata / {print $9}') +error="ERROR: Neutron Metadata Agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh b/docker/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh new file mode 100755 index 000000000..6149fc09e --- /dev/null +++ b/docker/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-neutron.sh +. /opt/kolla/config-sudoers.sh + +: ${DHCP_DRIVER:=neutron.agent.linux.dhcp.Dnsmasq} +: ${USE_NAMESPACES:=true} +: ${DELETE_NAMESPACES:=true} +: ${DNSMASQ_CONFIG_FILE:=/etc/neutron/dnsmasq-neutron.conf} +: ${ROOT_HELPER:=sudo neutron-rootwrap /etc/neutron/rootwrap.conf} + +check_required_vars VERBOSE_LOGGING DEBUG_LOGGING MECHANISM_DRIVERS \ + DHCP_DRIVER USE_NAMESPACES DELETE_NAMESPACES \ + NEUTRON_LOG_DIR DNSMASQ_CONFIG_FILE \ + +cfg=/etc/neutron/dhcp_agent.ini +neutron_conf=/etc/neutron/neutron.conf + +if [[ ${MECHANISM_DRIVERS} =~ .*linuxbridge.* ]]; then + interface_driver="neutron.agent.linux.interface.BridgeInterfaceDriver" +elif [[ ${MECHANISM_DRIVERS} == "openvswitch" ]]; then + interface_driver="neutron.agent.linux.interface.OVSInterfaceDriver" +fi + +# Logging +crudini --set $neutron_conf \ + DEFAULT \ + log_file \ + "${NEUTRON_DHCP_AGENT_LOG_FILE}" + +# Configure dhcp_agent.ini +crudini --set $cfg \ + DEFAULT \ + verbose \ + "${VERBOSE_LOGGING}" +crudini --set $cfg \ + DEFAULT \ + debug \ + "${DEBUG_LOGGING}" +crudini --set $cfg \ + DEFAULT \ + interface_driver \ + "$interface_driver" +crudini --set $cfg \ + DEFAULT \ + dhcp_driver \ + "${DHCP_DRIVER}" +crudini --set $cfg \ + DEFAULT \ + use_namespaces \ + "${USE_NAMESPACES}" +crudini --set $cfg \ + DEFAULT \ + delete_namespaces \ + "${DELETE_NAMESPACES}" +crudini --set $cfg \ + DEFAULT \ + dnsmasq_config_file \ + "${DNSMASQ_CONFIG_FILE}" +crudini --set $cfg \ + DEFAULT \ + root_helper \ + "${ROOT_HELPER}" + +cat > ${DNSMASQ_CONFIG_FILE} < /openrc <