From 98460af04d626907f44ea1b13289769979ed4f7b Mon Sep 17 00:00:00 2001 From: Sam Yaple Date: Tue, 16 Jun 2015 04:56:44 +0000 Subject: Change fat neutron container into thin containers Key difference here is the ip_wrapper.py file. This file and docker 1.7 allow for the network namespaces to be created in the host mount namespace and propogated into the containers. Co-Authored-By: Paul Bourke Change-Id: I73bcd1c97bbaf742af883dbf281a8d76aff8aebf --- compose/neutron-agents.yml | 11 --- compose/neutron-dhcp-agent.yml | 12 +++ compose/neutron-l3-agent.yml | 12 +++ compose/neutron-linuxbridge-agent.yml | 12 +++ compose/neutron-metadata-agent.yml | 12 +++ .../binary/neutron/neutron-agents/Dockerfile | 39 ---------- docker/centos/binary/neutron/neutron-agents/build | 1 - .../check-scripts/check-dhcp-agent.sh | 1 - .../neutron-agents/check-scripts/check-l3-agent.sh | 1 - .../check-scripts/check-linuxbridge-agent.sh | 1 - .../check-scripts/check-metadata-agent.sh | 1 - .../config-scripts/config-dhcp-agent.sh | 1 - .../config-scripts/config-l3-agent.sh | 1 - .../config-scripts/config-linuxbridge-agent.sh | 1 - .../config-scripts/config-metadata-agent.sh | 1 - .../config-scripts/config-sudoers.sh | 1 - .../binary/neutron/neutron-agents/fwaas_driver.ini | 1 - .../binary/neutron/neutron-agents/supervisord.conf | 1 - .../centos/binary/neutron/neutron-base/Dockerfile | 15 +++- .../binary/neutron/neutron-base/config-sudoers.sh | 12 +++ .../binary/neutron/neutron-base/ip_wrapper.py | 57 ++++++++++++++ .../binary/neutron/neutron-dhcp-agent/Dockerfile | 6 ++ .../centos/binary/neutron/neutron-dhcp-agent/build | 1 + .../binary/neutron/neutron-dhcp-agent/check.sh | 1 + .../binary/neutron/neutron-dhcp-agent/start.sh | 1 + .../binary/neutron/neutron-l3-agent/Dockerfile | 14 ++++ .../centos/binary/neutron/neutron-l3-agent/build | 1 + .../binary/neutron/neutron-l3-agent/check.sh | 1 + .../neutron/neutron-l3-agent/fwaas_driver.ini | 1 + .../binary/neutron/neutron-l3-agent/start.sh | 1 + .../neutron/neutron-linuxbridge-agent/Dockerfile | 10 +++ .../binary/neutron/neutron-linuxbridge-agent/build | 1 + .../neutron/neutron-linuxbridge-agent/check.sh | 1 + .../neutron/neutron-linuxbridge-agent/start.sh | 1 + .../neutron/neutron-metadata-agent/Dockerfile | 6 ++ .../binary/neutron/neutron-metadata-agent/build | 1 + .../binary/neutron/neutron-metadata-agent/check.sh | 1 + .../binary/neutron/neutron-metadata-agent/start.sh | 1 + .../binary/neutron/neutron-server/Dockerfile | 9 +-- .../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 | 88 ---------------------- .../config-scripts/config-l3-agent.sh | 85 --------------------- .../config-scripts/config-linuxbridge-agent.sh | 29 ------- .../config-scripts/config-metadata-agent.sh | 74 ------------------ .../config-scripts/config-sudoers.sh | 12 --- .../common/neutron/neutron-agents/fwaas_driver.ini | 3 - .../common/neutron/neutron-agents/supervisord.conf | 53 ------------- docker/common/neutron/neutron-dhcp-agent/check.sh | 13 ++++ docker/common/neutron/neutron-dhcp-agent/start.sh | 83 ++++++++++++++++++++ docker/common/neutron/neutron-l3-agent/check.sh | 13 ++++ .../neutron/neutron-l3-agent/fwaas_driver.ini | 3 + docker/common/neutron/neutron-l3-agent/start.sh | 80 ++++++++++++++++++++ .../neutron/neutron-linuxbridge-agent/check.sh | 13 ++++ .../neutron/neutron-linuxbridge-agent/start.sh | 29 +++++++ .../common/neutron/neutron-metadata-agent/check.sh | 13 ++++ .../common/neutron/neutron-metadata-agent/start.sh | 74 ++++++++++++++++++ tools/kolla | 5 +- 60 files changed, 506 insertions(+), 468 deletions(-) delete mode 100644 compose/neutron-agents.yml create mode 100644 compose/neutron-dhcp-agent.yml create mode 100644 compose/neutron-l3-agent.yml create mode 100644 compose/neutron-linuxbridge-agent.yml create mode 100644 compose/neutron-metadata-agent.yml delete mode 100644 docker/centos/binary/neutron/neutron-agents/Dockerfile delete mode 120000 docker/centos/binary/neutron/neutron-agents/build delete mode 120000 docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh delete mode 120000 docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini delete mode 120000 docker/centos/binary/neutron/neutron-agents/supervisord.conf create mode 100644 docker/centos/binary/neutron/neutron-base/config-sudoers.sh create mode 100755 docker/centos/binary/neutron/neutron-base/ip_wrapper.py create mode 100644 docker/centos/binary/neutron/neutron-dhcp-agent/Dockerfile create mode 120000 docker/centos/binary/neutron/neutron-dhcp-agent/build create mode 120000 docker/centos/binary/neutron/neutron-dhcp-agent/check.sh create mode 120000 docker/centos/binary/neutron/neutron-dhcp-agent/start.sh create mode 100644 docker/centos/binary/neutron/neutron-l3-agent/Dockerfile create mode 120000 docker/centos/binary/neutron/neutron-l3-agent/build create mode 120000 docker/centos/binary/neutron/neutron-l3-agent/check.sh create mode 120000 docker/centos/binary/neutron/neutron-l3-agent/fwaas_driver.ini create mode 120000 docker/centos/binary/neutron/neutron-l3-agent/start.sh create mode 100644 docker/centos/binary/neutron/neutron-linuxbridge-agent/Dockerfile create mode 120000 docker/centos/binary/neutron/neutron-linuxbridge-agent/build create mode 120000 docker/centos/binary/neutron/neutron-linuxbridge-agent/check.sh create mode 120000 docker/centos/binary/neutron/neutron-linuxbridge-agent/start.sh create mode 100644 docker/centos/binary/neutron/neutron-metadata-agent/Dockerfile create mode 120000 docker/centos/binary/neutron/neutron-metadata-agent/build create mode 120000 docker/centos/binary/neutron/neutron-metadata-agent/check.sh create mode 120000 docker/centos/binary/neutron/neutron-metadata-agent/start.sh delete mode 100755 docker/common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh delete mode 100755 docker/common/neutron/neutron-agents/check-scripts/check-l3-agent.sh delete mode 100755 docker/common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh delete mode 100755 docker/common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh delete mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh delete mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-l3-agent.sh delete mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh delete mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-metadata-agent.sh delete mode 100755 docker/common/neutron/neutron-agents/config-scripts/config-sudoers.sh delete mode 100644 docker/common/neutron/neutron-agents/fwaas_driver.ini delete mode 100644 docker/common/neutron/neutron-agents/supervisord.conf create mode 100755 docker/common/neutron/neutron-dhcp-agent/check.sh create mode 100755 docker/common/neutron/neutron-dhcp-agent/start.sh create mode 100755 docker/common/neutron/neutron-l3-agent/check.sh create mode 100644 docker/common/neutron/neutron-l3-agent/fwaas_driver.ini create mode 100755 docker/common/neutron/neutron-l3-agent/start.sh create mode 100755 docker/common/neutron/neutron-linuxbridge-agent/check.sh create mode 100755 docker/common/neutron/neutron-linuxbridge-agent/start.sh create mode 100755 docker/common/neutron/neutron-metadata-agent/check.sh create mode 100755 docker/common/neutron/neutron-metadata-agent/start.sh diff --git a/compose/neutron-agents.yml b/compose/neutron-agents.yml deleted file mode 100644 index 895624dff..000000000 --- a/compose/neutron-agents.yml +++ /dev/null @@ -1,11 +0,0 @@ -neutronagents: - image: kollaglue/centos-rdo-neutron-agents:latest - name: neutron-agents - net: "host" - privileged: true - restart: always - volumes: - - /var/run/netns/:/var/run/netns/ - - /lib/modules:/lib/modules:ro - env_file: - - openstack.env diff --git a/compose/neutron-dhcp-agent.yml b/compose/neutron-dhcp-agent.yml new file mode 100644 index 000000000..8d944c00c --- /dev/null +++ b/compose/neutron-dhcp-agent.yml @@ -0,0 +1,12 @@ +neutrondhcpagent: + image: kollaglue/centos-rdo-neutron-dhcp-agent:latest + name: neutron-dhcp-agent + net: "host" + privileged: true + restart: always + volumes: + - /run/netns/:/run/netns/:ro + - /proc/1/ns/:/opt/kolla/host_proc/1/ns/:ro + - /lib/modules:/lib/modules:ro + env_file: + - openstack.env diff --git a/compose/neutron-l3-agent.yml b/compose/neutron-l3-agent.yml new file mode 100644 index 000000000..e4c31169f --- /dev/null +++ b/compose/neutron-l3-agent.yml @@ -0,0 +1,12 @@ +neutronl3agent: + image: kollaglue/centos-rdo-neutron-l3-agent:latest + name: neutron-l3-agent + net: "host" + privileged: true + restart: always + volumes: + - /run/netns/:/run/netns/:ro + - /proc/1/ns/:/opt/kolla/host_proc/1/ns/:ro + - /lib/modules:/lib/modules:ro + env_file: + - openstack.env diff --git a/compose/neutron-linuxbridge-agent.yml b/compose/neutron-linuxbridge-agent.yml new file mode 100644 index 000000000..46f2e68d5 --- /dev/null +++ b/compose/neutron-linuxbridge-agent.yml @@ -0,0 +1,12 @@ +neutronlinuxbridgeagent: + image: kollaglue/centos-rdo-neutron-linuxbridge-agent:latest + name: neutron-linuxbridge-agent + net: "host" + privileged: true + restart: always + volumes: + - /run/netns/:/run/netns/:ro + - /proc/1/ns/:/opt/kolla/host_proc/1/ns/:ro + - /lib/modules:/lib/modules:ro + env_file: + - openstack.env diff --git a/compose/neutron-metadata-agent.yml b/compose/neutron-metadata-agent.yml new file mode 100644 index 000000000..b9338f7b6 --- /dev/null +++ b/compose/neutron-metadata-agent.yml @@ -0,0 +1,12 @@ +neutronmetadataagent: + image: kollaglue/centos-rdo-neutron-metadata-agent:latest + name: neutron-metadata-agent + net: "host" + privileged: true + restart: always + volumes: + - /run/netns/:/run/netns/:ro + - /proc/1/ns/:/opt/kolla/host_proc/1/ns/:ro + - /lib/modules:/lib/modules:ro + env_file: + - openstack.env diff --git a/docker/centos/binary/neutron/neutron-agents/Dockerfile b/docker/centos/binary/neutron/neutron-agents/Dockerfile deleted file mode 100644 index 89ce874bb..000000000 --- a/docker/centos/binary/neutron/neutron-agents/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base:%%KOLLA_TAG%% -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 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/ - -# This is needed to workaround a problem with the agents exiting if the -# file is not present. This file really shouldn't need to be present and -# implies a configuration problem somewhere else in the code base, but -# we are out of time. -COPY fwaas_driver.ini /etc/neutron/ - -# Configure supervisord -RUN mkdir -p /var/log/supervisor/ -ADD supervisord.conf /etc/ - -# Start supervisor -CMD ["/usr/bin/supervisord"] diff --git a/docker/centos/binary/neutron/neutron-agents/build b/docker/centos/binary/neutron/neutron-agents/build deleted file mode 120000 index ec1913803..000000000 --- a/docker/centos/binary/neutron/neutron-agents/build +++ /dev/null @@ -1 +0,0 @@ -../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh deleted file mode 120000 index fcce4f251..000000000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh deleted file mode 120000 index 3975d06b6..000000000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-l3-agent.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/check-scripts/check-l3-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh deleted file mode 120000 index 8f26a18fe..000000000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh b/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh deleted file mode 120000 index aabb2a9ee..000000000 --- a/docker/centos/binary/neutron/neutron-agents/check-scripts/check-metadata-agent.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh deleted file mode 120000 index 8ef8dec06..000000000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh deleted file mode 120000 index d92fe01ec..000000000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-l3-agent.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/config-scripts/config-l3-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh deleted file mode 120000 index 0736ca3ca..000000000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/config-scripts/config-linuxbridge-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh deleted file mode 120000 index 7e9c1b299..000000000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-metadata-agent.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/config-scripts/config-metadata-agent.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh b/docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh deleted file mode 120000 index 3ecc0c823..000000000 --- a/docker/centos/binary/neutron/neutron-agents/config-scripts/config-sudoers.sh +++ /dev/null @@ -1 +0,0 @@ -../../../../../common/neutron/neutron-agents/config-scripts/config-sudoers.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini b/docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini deleted file mode 120000 index 84e47b1c2..000000000 --- a/docker/centos/binary/neutron/neutron-agents/fwaas_driver.ini +++ /dev/null @@ -1 +0,0 @@ -../../../../common/neutron/neutron-agents/fwaas_driver.ini \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-agents/supervisord.conf b/docker/centos/binary/neutron/neutron-agents/supervisord.conf deleted file mode 120000 index a7f24cb77..000000000 --- a/docker/centos/binary/neutron/neutron-agents/supervisord.conf +++ /dev/null @@ -1 +0,0 @@ -../../../../common/neutron/neutron-agents/supervisord.conf \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-base/Dockerfile b/docker/centos/binary/neutron/neutron-base/Dockerfile index c8a5ef2d9..5d87dbb77 100644 --- a/docker/centos/binary/neutron/neutron-base/Dockerfile +++ b/docker/centos/binary/neutron/neutron-base/Dockerfile @@ -1,7 +1,16 @@ FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%% MAINTAINER Kolla Project (https://launchpad.net/kolla) -RUN yum -y install openstack-neutron-ml2 && yum clean all +RUN yum -y install openstack-neutron \ + openstack-neutron-ml2 \ + python-neutron-client \ + && yum clean all -RUN mkdir -p /opt/kolla -COPY config-neutron.sh /opt/kolla/config-neutron.sh +RUN pip install nsenter \ + && ln -s 1 /opt/kolla/host_proc/self + +RUN mkdir -p /opt/kolla/host_proc +COPY config-neutron.sh config-sudoers.sh /opt/kolla/ + +RUN mv /sbin/ip /opt/kolla/ip +COPY ip_wrapper.py /sbin/ip diff --git a/docker/centos/binary/neutron/neutron-base/config-sudoers.sh b/docker/centos/binary/neutron/neutron-base/config-sudoers.sh new file mode 100644 index 000000000..0e02226db --- /dev/null +++ b/docker/centos/binary/neutron/neutron-base/config-sudoers.sh @@ -0,0 +1,12 @@ +#!/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/centos/binary/neutron/neutron-base/ip_wrapper.py b/docker/centos/binary/neutron/neutron-base/ip_wrapper.py new file mode 100755 index 000000000..99d70340e --- /dev/null +++ b/docker/centos/binary/neutron/neutron-base/ip_wrapper.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +# Copyright 2015 Sam Yaple +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file exists because we want to create and delete any network namespaces from the +# host mount namespace. This allows the host to access all of the neutron network +# namespaces as well as all containers that bind mount /run/netns from the host. + +# This is required for "thin" neutron containers to function properly + +import sys +import subprocess +import nsenter + +def host_mnt_exec(cmd): + try: + with nsenter.ExitStack() as stack: + stack.enter_context(nsenter.Namespace('1', 'mnt', proc='/opt/kolla/host_proc/')) + process_ = subprocess.Popen(cmd) + + except Exception as e: + print("An error has occured with a component that Kolla manages. Please file a bug") + print("Error: ", e) + + return process_ + + +if len(sys.argv) > 2: + # We catch all commands that ip will accept that refer to creating or deleteing a + # Network namespace + if str(sys.argv[1]).startswith("net") and \ + (str(sys.argv[2]).startswith("a") or str(sys.argv[2]).startswith("d")): + # This cmd is executed in the host mount namespace + cmd = ["/usr/bin/env", "ip"] + sys.argv[1:] + sys.exit(host_mnt_exec(cmd).returncode) + else: + cmd = ["/opt/kolla/ip"] + sys.argv[1:] +else: + cmd = ["/opt/kolla/ip"] + + if len(sys.argv) == 2: + cmd = cmd + sys.argv[1:] + +process_ = subprocess.Popen(cmd) +sys.exit(process_.returncode) diff --git a/docker/centos/binary/neutron/neutron-dhcp-agent/Dockerfile b/docker/centos/binary/neutron/neutron-dhcp-agent/Dockerfile new file mode 100644 index 000000000..bbc9354f3 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-dhcp-agent/Dockerfile @@ -0,0 +1,6 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +COPY check.sh start.sh / + +CMD ["/start.sh"] diff --git a/docker/centos/binary/neutron/neutron-dhcp-agent/build b/docker/centos/binary/neutron/neutron-dhcp-agent/build new file mode 120000 index 000000000..ec1913803 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-dhcp-agent/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-dhcp-agent/check.sh b/docker/centos/binary/neutron/neutron-dhcp-agent/check.sh new file mode 120000 index 000000000..c8efc14c6 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-dhcp-agent/check.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-dhcp-agent/check.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-dhcp-agent/start.sh b/docker/centos/binary/neutron/neutron-dhcp-agent/start.sh new file mode 120000 index 000000000..98a2563e9 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-dhcp-agent/start.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-dhcp-agent/start.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-l3-agent/Dockerfile b/docker/centos/binary/neutron/neutron-l3-agent/Dockerfile new file mode 100644 index 000000000..96a05c9c3 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-l3-agent/Dockerfile @@ -0,0 +1,14 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +# TODO: SamYaple FWaaS is part of the l3-agent, not a seperate agent that is +# why this file is needed. To support FWaaS we cannot have a seperate container +# I need to figure out the best way to make this work together +# +# This file _does_ _not_ need to exist, you must remove referencing it from the +# exec line in the start script. Also all these config options can exist in the +# main neutron.conf if we wish +COPY fwaas_driver.ini /etc/neutron/ +COPY check.sh start.sh / + +CMD ["/start.sh"] diff --git a/docker/centos/binary/neutron/neutron-l3-agent/build b/docker/centos/binary/neutron/neutron-l3-agent/build new file mode 120000 index 000000000..ec1913803 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-l3-agent/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-l3-agent/check.sh b/docker/centos/binary/neutron/neutron-l3-agent/check.sh new file mode 120000 index 000000000..7f8ed45ce --- /dev/null +++ b/docker/centos/binary/neutron/neutron-l3-agent/check.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-l3-agent/check.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-l3-agent/fwaas_driver.ini b/docker/centos/binary/neutron/neutron-l3-agent/fwaas_driver.ini new file mode 120000 index 000000000..0e016223c --- /dev/null +++ b/docker/centos/binary/neutron/neutron-l3-agent/fwaas_driver.ini @@ -0,0 +1 @@ +../../../../common/neutron/neutron-l3-agent/fwaas_driver.ini \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-l3-agent/start.sh b/docker/centos/binary/neutron/neutron-l3-agent/start.sh new file mode 120000 index 000000000..8d9104a33 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-l3-agent/start.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-l3-agent/start.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-linuxbridge-agent/Dockerfile b/docker/centos/binary/neutron/neutron-linuxbridge-agent/Dockerfile new file mode 100644 index 000000000..702e16b42 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-linuxbridge-agent/Dockerfile @@ -0,0 +1,10 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +# Install required packages +RUN yum install -y openstack-neutron-linuxbridge && \ + yum clean all + +COPY check.sh start.sh / + +CMD ["/start.sh"] diff --git a/docker/centos/binary/neutron/neutron-linuxbridge-agent/build b/docker/centos/binary/neutron/neutron-linuxbridge-agent/build new file mode 120000 index 000000000..ec1913803 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-linuxbridge-agent/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-linuxbridge-agent/check.sh b/docker/centos/binary/neutron/neutron-linuxbridge-agent/check.sh new file mode 120000 index 000000000..469fd5d7f --- /dev/null +++ b/docker/centos/binary/neutron/neutron-linuxbridge-agent/check.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-linuxbridge-agent/check.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-linuxbridge-agent/start.sh b/docker/centos/binary/neutron/neutron-linuxbridge-agent/start.sh new file mode 120000 index 000000000..9d51d3d6a --- /dev/null +++ b/docker/centos/binary/neutron/neutron-linuxbridge-agent/start.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-linuxbridge-agent/start.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-metadata-agent/Dockerfile b/docker/centos/binary/neutron/neutron-metadata-agent/Dockerfile new file mode 100644 index 000000000..bbc9354f3 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-metadata-agent/Dockerfile @@ -0,0 +1,6 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +COPY check.sh start.sh / + +CMD ["/start.sh"] diff --git a/docker/centos/binary/neutron/neutron-metadata-agent/build b/docker/centos/binary/neutron/neutron-metadata-agent/build new file mode 120000 index 000000000..ec1913803 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-metadata-agent/build @@ -0,0 +1 @@ +../../../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-metadata-agent/check.sh b/docker/centos/binary/neutron/neutron-metadata-agent/check.sh new file mode 120000 index 000000000..2ac733b83 --- /dev/null +++ b/docker/centos/binary/neutron/neutron-metadata-agent/check.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-metadata-agent/check.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-metadata-agent/start.sh b/docker/centos/binary/neutron/neutron-metadata-agent/start.sh new file mode 120000 index 000000000..b555e715d --- /dev/null +++ b/docker/centos/binary/neutron/neutron-metadata-agent/start.sh @@ -0,0 +1 @@ +../../../../common/neutron/neutron-metadata-agent/start.sh \ No newline at end of file diff --git a/docker/centos/binary/neutron/neutron-server/Dockerfile b/docker/centos/binary/neutron/neutron-server/Dockerfile index 8d59dd04a..0bfd3cf4b 100644 --- a/docker/centos/binary/neutron/neutron-server/Dockerfile +++ b/docker/centos/binary/neutron/neutron-server/Dockerfile @@ -2,12 +2,9 @@ FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%neutron-base:%%KOLLA_TAG%% MAINTAINER Kolla Project (https://launchpad.net/kolla) #Install required packages -RUN yum install -y openstack-neutron \ - python-neutronclient \ - which \ - && yum clean all +RUN yum install -y which && \ + yum clean all -ADD ./start.sh /start.sh -ADD ./check.sh /check.sh +COPY check.sh start.sh / CMD ["/start.sh"] diff --git a/docker/common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh b/docker/common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh deleted file mode 100755 index 7dda736ef..000000000 --- a/docker/common/neutron/neutron-agents/check-scripts/check-dhcp-agent.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -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/common/neutron/neutron-agents/check-scripts/check-l3-agent.sh b/docker/common/neutron/neutron-agents/check-scripts/check-l3-agent.sh deleted file mode 100755 index d32c1e272..000000000 --- a/docker/common/neutron/neutron-agents/check-scripts/check-l3-agent.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -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/common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh b/docker/common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh deleted file mode 100755 index 4485fc1ec..000000000 --- a/docker/common/neutron/neutron-agents/check-scripts/check-linuxbridge-agent.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -RES=0 - -check=$(/usr/bin/neutron agent-list | awk '/ Linux / {print $10}') -error="ERROR: Neutron Linux Bridge agent is not alive." - -if [[ $check != ":-)" ]]; then - echo $error >&2 - RES=1 -fi - -exit $RES diff --git a/docker/common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh b/docker/common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh deleted file mode 100755 index fd1c6812b..000000000 --- a/docker/common/neutron/neutron-agents/check-scripts/check-metadata-agent.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -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/common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh b/docker/common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh deleted file mode 100755 index db71678b1..000000000 --- a/docker/common/neutron/neutron-agents/config-scripts/config-dhcp-agent.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/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/dnsmasq-neutron.conf} -: ${ROOT_HELPER:=sudo neutron-rootwrap /etc/neutron/rootwrap.conf} - -mkdir -p $(dirname $DNSMASQ_CONFIG_FILE) - -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 - -# Workaround bug in dhclient in cirros images which does not correctly -# handle setting checksums of packets when using hardware with checksum -# offloading. See: -# https://www.rdoproject.org/forum/discussion/567/packstack-allinone-grizzly-cirros-image-cannot-get-a-dhcp-address-when-a-centos-image-can/p1 - -/usr/sbin/iptables -A POSTROUTING -t mangle -p udp --dport bootpc \ - -j CHECKSUM --checksum-fill - -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} <&2 + RES=1 +fi + +exit $RES diff --git a/docker/common/neutron/neutron-dhcp-agent/start.sh b/docker/common/neutron/neutron-dhcp-agent/start.sh new file mode 100755 index 000000000..c3056fdb4 --- /dev/null +++ b/docker/common/neutron/neutron-dhcp-agent/start.sh @@ -0,0 +1,83 @@ +#!/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/dnsmasq-neutron.conf} +: ${ROOT_HELPER:=sudo neutron-rootwrap /etc/neutron/rootwrap.conf} + +mkdir -p $(dirname $DNSMASQ_CONFIG_FILE) + +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 + +# Workaround bug in dhclient in cirros images which does not correctly +# handle setting checksums of packets when using hardware with checksum +# offloading. See: +# https://www.rdoproject.org/forum/discussion/567/packstack-allinone-grizzly-cirros-image-cannot-get-a-dhcp-address-when-a-centos-image-can/p1 + +/usr/sbin/iptables -A POSTROUTING -t mangle -p udp --dport bootpc \ + -j CHECKSUM --checksum-fill + +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} <&2 + RES=1 +fi + +exit $RES diff --git a/docker/common/neutron/neutron-l3-agent/fwaas_driver.ini b/docker/common/neutron/neutron-l3-agent/fwaas_driver.ini new file mode 100644 index 000000000..41f761abf --- /dev/null +++ b/docker/common/neutron/neutron-l3-agent/fwaas_driver.ini @@ -0,0 +1,3 @@ +[fwaas] +#driver = neutron.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver +#enabled = True diff --git a/docker/common/neutron/neutron-l3-agent/start.sh b/docker/common/neutron/neutron-l3-agent/start.sh new file mode 100755 index 000000000..4780341fb --- /dev/null +++ b/docker/common/neutron/neutron-l3-agent/start.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-neutron.sh +. /opt/kolla/config-sudoers.sh + +: ${USE_NAMESPACES:=true} + +check_required_vars VERBOSE_LOGGING DEBUG_LOGGING + +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}" +if [[ "${MECHANISM_DRIVERS}" =~ linuxbridge ]] ; then + crudini --set $cfg \ + DEFAULT \ + interface_driver \ + "neutron.agent.linux.interface.BridgeInterfaceDriver" + crudini --set $cfg \ + DEFAULT \ + gateway_external_network_id \ + "" + crudini --set $cfg \ + DEFAULT \ + external_network_bridge \ + "" +elif [[ "${MECHANISM_DRIVERS}" =~ .*openvswitch* ]] ; then + crudini --set $cfg \ + DEFAULT \ + interface_driver \ + "neutron.agent.linux.interface.OVSInterfaceDriver" + crudini --set $cfg \ + DEFAULT \ + gateway_external_network_id \ + "${NEUTRON_FLAT_NETWORK_BRIDGE}" + crudini --set $cfg \ + DEFAULT \ + external_network_bridge \ + "${NEUTRON_FLAT_NETWORK_BRIDGE}" +fi + +crudini --set $cfg \ + DEFAULT \ + use_namespaces \ + "${USE_NAMESPACES}" + +if [ "${USE_NAMESPACES}" == "false" ] ; then + 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}')" +elif [ "${USE_NAMESPACES}" == "true" ] ; then + crudini --set $cfg \ + DEFAULT \ + router_delete_namespaces \ + "true" +fi + +# Start L3 Agent +exec /usr/bin/neutron-l3-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini --config-file /etc/neutron/fwaas_driver.ini --config-dir /etc/neutron diff --git a/docker/common/neutron/neutron-linuxbridge-agent/check.sh b/docker/common/neutron/neutron-linuxbridge-agent/check.sh new file mode 100755 index 000000000..4485fc1ec --- /dev/null +++ b/docker/common/neutron/neutron-linuxbridge-agent/check.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +RES=0 + +check=$(/usr/bin/neutron agent-list | awk '/ Linux / {print $10}') +error="ERROR: Neutron Linux Bridge agent is not alive." + +if [[ $check != ":-)" ]]; then + echo $error >&2 + RES=1 +fi + +exit $RES diff --git a/docker/common/neutron/neutron-linuxbridge-agent/start.sh b/docker/common/neutron/neutron-linuxbridge-agent/start.sh new file mode 100755 index 000000000..bd8f90194 --- /dev/null +++ b/docker/common/neutron/neutron-linuxbridge-agent/start.sh @@ -0,0 +1,29 @@ +#!/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 + +cfg=/etc/neutron/plugins/ml2/ml2_conf.ini + +# Configure ml2_conf.ini +if [[ ${TYPE_DRIVERS} =~ vxlan ]]; then + crudini --set $cfg \ + vxlan \ + local_ip \ + "${PUBLIC_IP}" +fi + +crudini --set $cfg \ + linux_bridge \ + physical_interface_mappings \ + "${NEUTRON_FLAT_NETWORK_NAME}:${NEUTRON_FLAT_NETWORK_INTERFACE}" + +exec /usr/bin/neutron-linuxbridge-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-dir /etc/neutron diff --git a/docker/common/neutron/neutron-metadata-agent/check.sh b/docker/common/neutron/neutron-metadata-agent/check.sh new file mode 100755 index 000000000..fd1c6812b --- /dev/null +++ b/docker/common/neutron/neutron-metadata-agent/check.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +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/common/neutron/neutron-metadata-agent/start.sh b/docker/common/neutron/neutron-metadata-agent/start.sh new file mode 100755 index 000000000..d1eef341c --- /dev/null +++ b/docker/common/neutron/neutron-metadata-agent/start.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-neutron.sh +. /opt/kolla/config-sudoers.sh + +: ${KEYSTONE_REGION:=RegionOne} +: ${ENDPOINT_TYPE:=adminURL} +: ${NEUTRON_SHARED_SECRET:=sharedsecret} + +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_METADATA_API_SERVICE_HOST \ + NOVA_METADATA_API_SERVICE_PORT + +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 \ + endpoint_type \ + "${ENDPOINT_TYPE}" +crudini --set $cfg \ + DEFAULT \ + auth_url \ + "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/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_METADATA_API_SERVICE_HOST}" +crudini --set $cfg \ + DEFAULT \ + nova_metadata_port \ + "${NOVA_METADATA_API_SERVICE_PORT}" +crudini --set $cfg \ + DEFAULT \ + metadata_proxy_shared_secret \ + "${NEUTRON_SHARED_SECRET}" + +# Start Metadata Agent +exec /usr/bin/neutron-metadata-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini --config-dir /etc/neutron diff --git a/tools/kolla b/tools/kolla index d100a82c2..9235c5677 100755 --- a/tools/kolla +++ b/tools/kolla @@ -39,7 +39,10 @@ function process_all { # Defaulting to neutron process nova-compute process neutron-server - process neutron-agents + process neutron-dhcp-agent + process neutron-l3-agent + process neutron-metadata-agent + process neutron-linuxbridge-agent fi process heat-api-engine process magnum-api-conductor -- cgit v1.2.3