diff options
Diffstat (limited to 'docker/neutron')
22 files changed, 563 insertions, 0 deletions
diff --git a/docker/neutron/neutron-agents/Dockerfile.j2 b/docker/neutron/neutron-agents/Dockerfile.j2 new file mode 100644 index 000000000..590443e00 --- /dev/null +++ b/docker/neutron/neutron-agents/Dockerfile.j2 @@ -0,0 +1,35 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-neutron-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum install -y supervisor \ + && yum clean all + +COPY supervisord.conf /etc/ + +{% elif base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get install -y --no-install-recommends supervisor \ + && apt-get clean + +COPY supervisord.conf /etc/supervisor/ + +{% endif %} + +# 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 neutron-dhcp-agent/ /opt/kolla/neutron-dhcp-agent +COPY neutron-l3-agent/ /opt/kolla/neutron-l3-agent +COPY neutron-metadata-agent/ /opt/kolla/neutron-metadata-agent + +CMD ["/usr/bin/supervisord"] + +{{ include_footer }} diff --git a/docker/neutron/neutron-agents/fwaas_driver.ini b/docker/neutron/neutron-agents/fwaas_driver.ini new file mode 120000 index 000000000..a9b1ec519 --- /dev/null +++ b/docker/neutron/neutron-agents/fwaas_driver.ini @@ -0,0 +1 @@ +neutron-l3-agent/fwaas_driver.ini
\ No newline at end of file diff --git a/docker/neutron/neutron-agents/neutron-dhcp-agent/config-external.sh b/docker/neutron/neutron-agents/neutron-dhcp-agent/config-external.sh new file mode 100755 index 000000000..badbd86a1 --- /dev/null +++ b/docker/neutron/neutron-agents/neutron-dhcp-agent/config-external.sh @@ -0,0 +1,13 @@ +#!/bin/bash +SOURCES="/opt/kolla/neutron-agents/neutron.conf /opt/kolla/neutron-agents/dhcp_agent.ini /opt/kolla/neutron-agents/dnsmasq.conf" +TARGET="/etc/neutron/" +OWNER="neutron" + +for f in $SOURCES; do + if [[ -f "$f" ]]; then + fname=$(basename $f) + cp $f $TARGET + chown ${OWNER}: $TARGET/$fname + chmod 0644 $TARGET/$fname + fi +done diff --git a/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh b/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh new file mode 100755 index 000000000..7b64f87aa --- /dev/null +++ b/docker/neutron/neutron-agents/neutron-dhcp-agent/start.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/neutron-dhcp-agent" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini" + +# Loading common functions. +source /opt/kolla/kolla-common.sh +source /opt/kolla/config-sudoers.sh + +# Override set_configs() here because it doesn't work for fat containers like +# this one. +set_configs() { + case $KOLLA_CONFIG_STRATEGY in + CONFIG_EXTERNAL_COPY_ALWAYS) + source /opt/kolla/neutron-dhcp-agent/config-external.sh + ;; + CONFIG_EXTERNAL_COPY_ONCE) + if [[ -f /configured-dhcp ]]; then + echo 'INFO - Neutron-dhcp has already been configured; Refusing to copy new configs' + return + fi + source /opt/kolla/neutron-dhcp-agent/config-external.sh + touch /configured-dhcp + ;; + + *) + echo '$KOLLA_CONFIG_STRATEGY is not set properly' + exit 1 + ;; + esac +} + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/neutron/neutron-agents/neutron-l3-agent/config-external.sh b/docker/neutron/neutron-agents/neutron-l3-agent/config-external.sh new file mode 100755 index 000000000..e6eb049a4 --- /dev/null +++ b/docker/neutron/neutron-agents/neutron-l3-agent/config-external.sh @@ -0,0 +1,23 @@ +#!/bin/bash +SOURCES="/opt/kolla/neutron-agents/neutron.conf /opt/kolla/neutron-agents/l3_agent.ini /opt/kolla/neutron-agents/fwaas_driver.ini" +TARGET="/etc/neutron/" +OWNER="neutron" + +for f in $SOURCES; do + if [[ -f "$f" ]]; then + fname=$(basename $f) + cp $f $TARGET + chown ${OWNER}: $TARGET/$fname + chmod 0644 $TARGET/$fname + fi +done + +SOURCE="/opt/kolla/neutron-agents/ml2_conf.ini" +TARGET="/etc/neutron/plugins/ml2/ml2_conf.ini" +OWNER="neutron" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/neutron/neutron-agents/neutron-l3-agent/fwaas_driver.ini b/docker/neutron/neutron-agents/neutron-l3-agent/fwaas_driver.ini new file mode 100644 index 000000000..41f761abf --- /dev/null +++ b/docker/neutron/neutron-agents/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/neutron/neutron-agents/neutron-l3-agent/start.sh b/docker/neutron/neutron-agents/neutron-l3-agent/start.sh new file mode 100755 index 000000000..e0a17e47a --- /dev/null +++ b/docker/neutron/neutron-agents/neutron-l3-agent/start.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/neutron-l3-agent" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3_agent.ini --config-file /etc/neutron/fwaas_driver.ini --config-file /etc/neutron/plugins/ml2/ml2_conf.ini" + +# Loading common functions. +source /opt/kolla/kolla-common.sh +source /opt/kolla/config-sudoers.sh + +# Override set_configs() here because it doesn't work for fat containers like +# this one. +set_configs() { + case $KOLLA_CONFIG_STRATEGY in + CONFIG_EXTERNAL_COPY_ALWAYS) + source /opt/kolla/neutron-l3-agent/config-external.sh + ;; + CONFIG_EXTERNAL_COPY_ONCE) + if [[ -f /configured-l3 ]]; then + echo 'INFO - Neutron-l3 has already been configured; Refusing to copy new configs' + return + fi + source /opt/kolla/neutron-l3-agent/config-external.sh + touch /configured-l3 + ;; + + *) + echo '$KOLLA_CONFIG_STRATEGY is not set properly' + exit 1 + ;; + esac +} + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/neutron/neutron-agents/neutron-metadata-agent/config-external.sh b/docker/neutron/neutron-agents/neutron-metadata-agent/config-external.sh new file mode 100755 index 000000000..319ee3793 --- /dev/null +++ b/docker/neutron/neutron-agents/neutron-metadata-agent/config-external.sh @@ -0,0 +1,13 @@ +#!/bin/bash +SOURCES="/opt/kolla/neutron-agents/neutron.conf /opt/kolla/neutron-agents/metadata_agent.ini" +TARGET="/etc/neutron/" +OWNER="neutron" + +for f in $SOURCES; do + if [[ -f "$f" ]]; then + fname=$(basename $f) + cp $f $TARGET + chown ${OWNER}: $TARGET/$fname + chmod 0644 $TARGET/$fname + fi +done diff --git a/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh b/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh new file mode 100755 index 000000000..09a7329c7 --- /dev/null +++ b/docker/neutron/neutron-agents/neutron-metadata-agent/start.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/neutron-metadata-agent" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata_agent.ini" + +# Loading common functions. +source /opt/kolla/kolla-common.sh +source /opt/kolla/config-sudoers.sh + +# Override set_configs() here because it doesn't work for fat containers like +# this one. +set_configs() { + case $KOLLA_CONFIG_STRATEGY in + CONFIG_EXTERNAL_COPY_ALWAYS) + source /opt/kolla/neutron-metadata-agent/config-external.sh + ;; + CONFIG_EXTERNAL_COPY_ONCE) + if [[ -f /configured-md ]]; then + echo 'INFO - Neutron-metadata has already been configured; Refusing to copy new configs' + return + fi + source /opt/kolla/neutron-metadata-agent/config-external.sh + touch /configured-md + ;; + + *) + echo '$KOLLA_CONFIG_STRATEGY is not set properly' + exit 1 + ;; + esac +} + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/neutron/neutron-agents/supervisord.conf b/docker/neutron/neutron-agents/supervisord.conf new file mode 100644 index 000000000..5cab8f5dc --- /dev/null +++ b/docker/neutron/neutron-agents/supervisord.conf @@ -0,0 +1,40 @@ +[unix_http_server] +file = /var/run/supervisor.sock + +[inet_http_server] +port = 127.0.0.1:9001 + +[supervisord] +nodaemon=true +logfile = /var/log/supervisor/supervisord.log +logfile_maxbytes = 200KB +logfile_backups = 1 +pidfile = /var/run/supervisord.pid +childlogdir = /var/log/supervisor + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl = unix:///var/run/supervisor.sock + +[program:neutron-dhcp-agent] +command=/opt/kolla/neutron-dhcp-agent/start.sh +priority=40 +startsec=10 +stderr_events_enabled=true +stdout_events_enabled=true + +[program:neutron-metadata-agent] +command=/opt/kolla/neutron-metadata-agent/start.sh +priority=40 +startsec=10 +stderr_events_enabled=true +stdout_events_enabled=true + +[program:neutron-l3-agent] +command=/opt/kolla/neutron-l3-agent/start.sh +priority=40 +startsec=10 +stderr_events_enabled=true +stdout_events_enabled=true diff --git a/docker/neutron/neutron-base/Dockerfile.j2 b/docker/neutron/neutron-base/Dockerfile.j2 new file mode 100644 index 000000000..f1cd75a37 --- /dev/null +++ b/docker/neutron/neutron-base/Dockerfile.j2 @@ -0,0 +1,47 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +RUN yum -y install openstack-neutron \ + openstack-neutron-ml2 \ + openvswitch \ + && yum clean all + +# TODO (sdake): remove once RDO adds to the openstack-neutron package +RUN pip install oslo.versionedobjects + + {% elif base_distro in ['ubuntu', 'debian'] %} + +RUN echo '{{ install_type}} not yet available for {{ base_distro }}' \ + && /bin/false + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['ubuntu', 'debian'] %} + +RUN apt-get install -y --no-install-recommends \ + iptables \ + dnsmasq \ + uuid-runtime \ + ipset \ + openvswitch-switch \ + && apt-get clean + + {% endif %} + +ADD neutron.tar / +RUN ln -s /neutron-* neutron \ + && useradd --user-group neutron \ + && pip --no-cache-dir install /neutron \ + && mkdir -p /etc/neutron /usr/share/neutron /var/log/neutron /home/neutron \ + && cp -r /neutron/etc/* /etc/neutron/ \ + && cp -r /neutron/etc/neutron/* /etc/neutron/ \ + && cp /neutron/etc/api-paste.ini /usr/share/neutron \ + && mv /etc/neutron/neutron/ /etc/neutron/plugins/ \ + && chown -R neutron: /etc/neutron /usr/share/neutron /var/log/neutron /home/neutron + +{% endif %} + +COPY config-sudoers.sh /opt/kolla/ diff --git a/docker/neutron/neutron-base/config-sudoers.sh b/docker/neutron/neutron-base/config-sudoers.sh new file mode 100644 index 000000000..82cf0d624 --- /dev/null +++ b/docker/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 /sudo-modified ]; then + chmod 0640 /etc/sudoers + sed -i '/Defaults requiretty/s/^/#/' /etc/sudoers + chmod 0440 /etc/sudoers +fi + +touch /sudo-modified diff --git a/docker/neutron/neutron-base/ip_wrapper.py b/docker/neutron/neutron-base/ip_wrapper.py new file mode 100755 index 000000000..591fca6f4 --- /dev/null +++ b/docker/neutron/neutron-base/ip_wrapper.py @@ -0,0 +1,66 @@ +#!/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 nsenter +import subprocess +import sys + + +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/neutron/neutron-linuxbridge-agent/Dockerfile.j2 b/docker/neutron/neutron-linuxbridge-agent/Dockerfile.j2 new file mode 100644 index 000000000..58d5ae6c3 --- /dev/null +++ b/docker/neutron/neutron-linuxbridge-agent/Dockerfile.j2 @@ -0,0 +1,28 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-neutron-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +# Install required packages +RUN yum install -y \ + ebtables \ + openstack-neutron-linuxbridge \ + && yum clean all + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +# Install required packages +RUN yum install -y ebtables && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/neutron/neutron-linuxbridge-agent/config-external.sh b/docker/neutron/neutron-linuxbridge-agent/config-external.sh new file mode 100755 index 000000000..c44d71d84 --- /dev/null +++ b/docker/neutron/neutron-linuxbridge-agent/config-external.sh @@ -0,0 +1,20 @@ +#!/bin/bash +SOURCE="/opt/kolla/neutron-linuxbridge-agent/neutron.conf" +TARGET="/etc/neutron/neutron.conf" +OWNER="neutron" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi + +SOURCE="/opt/kolla/neutron-linuxbridge-agent/ml2_conf.ini" +TARGET="/etc/neutron/plugins/ml2/ml2_conf.ini" +OWNER="neutron" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/neutron/neutron-linuxbridge-agent/start.sh b/docker/neutron/neutron-linuxbridge-agent/start.sh new file mode 100755 index 000000000..ab47f2dfb --- /dev/null +++ b/docker/neutron/neutron-linuxbridge-agent/start.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/neutron-linuxbridge-agent" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini" + +# Loading common functions. +source /opt/kolla/kolla-common.sh +source /opt/kolla/config-sudoers.sh + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/neutron/neutron-openvswitch-agent/Dockerfile.j2 b/docker/neutron/neutron-openvswitch-agent/Dockerfile.j2 new file mode 100644 index 000000000..ad12e5511 --- /dev/null +++ b/docker/neutron/neutron-openvswitch-agent/Dockerfile.j2 @@ -0,0 +1,32 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-neutron-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +# Install required packages +RUN yum install -y \ + openstack-neutron-openvswitch \ + openvswitch \ + && yum clean all + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +# Install required packages +RUN yum install -y \ + #TODO: will be addressed later + https://rdoproject.org/repos/openstack-kilo/rdo-release-kilo.rpm \ + openvswitch \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/neutron/neutron-openvswitch-agent/config-external.sh b/docker/neutron/neutron-openvswitch-agent/config-external.sh new file mode 100755 index 000000000..552d69861 --- /dev/null +++ b/docker/neutron/neutron-openvswitch-agent/config-external.sh @@ -0,0 +1,20 @@ +#!/bin/bash +SOURCE="/opt/kolla/neutron-openvswitch-agent/neutron.conf" +TARGET="/etc/neutron/neutron.conf" +OWNER="neutron" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi + +SOURCE="/opt/kolla/neutron-openvswitch-agent/ml2_conf.ini" +TARGET="/etc/neutron/plugins/ml2/ml2_conf.ini" +OWNER="neutron" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/neutron/neutron-openvswitch-agent/start.sh b/docker/neutron/neutron-openvswitch-agent/start.sh new file mode 100755 index 000000000..6d62ff65d --- /dev/null +++ b/docker/neutron/neutron-openvswitch-agent/start.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/neutron-openvswitch-agent" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini" + +# Loading common functions. +source /opt/kolla/kolla-common.sh +source /opt/kolla/config-sudoers.sh + +# Execute config strategy +set_configs + +exec $CMD $ARGS diff --git a/docker/neutron/neutron-server/Dockerfile.j2 b/docker/neutron/neutron-server/Dockerfile.j2 new file mode 100644 index 000000000..9cfe634c4 --- /dev/null +++ b/docker/neutron/neutron-server/Dockerfile.j2 @@ -0,0 +1,31 @@ +FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-neutron-base:{{ tag }} +MAINTAINER Kolla Project (https://launchpad.net.kolla) + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +# Install required packages +RUN yum install -y which \ + && yum clean all + +# See bug: https://bugs.launchpad.net/kolla/+bug/1483667 +# TODO(SamYaple): Check in on this and remove once unneccesary +RUN pip install oslo.messaging==2.2.0 + + {% endif %} +{% elif install_type == 'source' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %} + +#Install required packages +RUN yum install -y which \ + && yum clean all + + {% endif %} +{% endif %} + +COPY start.sh / +COPY config-external.sh /opt/kolla/ + +CMD ["/start.sh"] + +{{ include_footer }} diff --git a/docker/neutron/neutron-server/config-external.sh b/docker/neutron/neutron-server/config-external.sh new file mode 100755 index 000000000..574923067 --- /dev/null +++ b/docker/neutron/neutron-server/config-external.sh @@ -0,0 +1,20 @@ +#!/bin/bash +SOURCE="/opt/kolla/neutron-server/neutron.conf" +TARGET="/etc/neutron/neutron.conf" +OWNER="neutron" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi + +SOURCE="/opt/kolla/neutron-server/ml2_conf.ini" +TARGET="/etc/neutron/plugins/ml2/ml2_conf.ini" +OWNER="neutron" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/neutron/neutron-server/start.sh b/docker/neutron/neutron-server/start.sh new file mode 100755 index 000000000..51c4c2a3d --- /dev/null +++ b/docker/neutron/neutron-server/start.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -o errexit + +CMD="/usr/bin/neutron-server" +ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini" + +# Loading common functions. +source /opt/kolla/kolla-common.sh + +# Execute config strategy +set_configs + +# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases +# of the KOLLA_BOOTSTRAP variable being set, including empty. +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + su -s /bin/bash -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron + exit 0 +fi + +exec $CMD $ARGS |
