From ba30579b3b3e69536f5bd59e57d39ed4b63a2dd6 Mon Sep 17 00:00:00 2001 From: Daneyon Hansen Date: Tue, 10 May 2016 20:26:58 +0000 Subject: Adds Neutron LBaaS Support Previously, kolla did not support neutron lbaas functionality. Only Lbaasv2 is supported in Mitaka. Additional information can be found here: http://docs.openstack.org/mitaka/networking-guide/adv-config-lbaas.html Magnum uses Neutron Lbaas to provide high availability to COE API and Etcd endpoints within a bay. Therefore, Neutron Lbaas is required for Kolla to support Magnum. Co-Authored-By: Serguei Bezverkhi Partial-Bug: #1551992 Change-Id: I05360b7c447c601fcb3c2b6b2a913ef5cc0f3a1b --- docker/neutron/neutron-base/Dockerfile.j2 | 2 + docker/neutron/neutron-lbaas-agent/Dockerfile.j2 | 51 ++++++++++++++++++++++ docker/neutron/neutron-lbaas-agent/extend_start.sh | 8 ++++ docker/neutron/neutron-server/Dockerfile.j2 | 17 ++++++++ 4 files changed, 78 insertions(+) create mode 100644 docker/neutron/neutron-lbaas-agent/Dockerfile.j2 create mode 100644 docker/neutron/neutron-lbaas-agent/extend_start.sh (limited to 'docker') diff --git a/docker/neutron/neutron-base/Dockerfile.j2 b/docker/neutron/neutron-base/Dockerfile.j2 index b89a9ad46..44d761d4a 100644 --- a/docker/neutron/neutron-base/Dockerfile.j2 +++ b/docker/neutron/neutron-base/Dockerfile.j2 @@ -8,6 +8,7 @@ RUN yum -y install \ openstack-neutron \ openstack-neutron-ml2 \ openvswitch \ + openstack-neutron-lbaas \ && yum clean all {% elif base_distro in ['ubuntu'] %} @@ -16,6 +17,7 @@ RUN apt-get -y install --no-install-recommends \ neutron-plugin-ml2 \ neutron-server \ openvswitch-switch \ + neutron-lbaas \ && apt-get clean \ && mkdir -p /usr/share/neutron \ && ln -s /etc/neutron/api-paste.ini /usr/share/neutron/api-paste.ini diff --git a/docker/neutron/neutron-lbaas-agent/Dockerfile.j2 b/docker/neutron/neutron-lbaas-agent/Dockerfile.j2 new file mode 100644 index 000000000..2965309b2 --- /dev/null +++ b/docker/neutron/neutron-lbaas-agent/Dockerfile.j2 @@ -0,0 +1,51 @@ +FROM {{ namespace }}/{{ image_prefix }}neutron-base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} + +RUN yum -y install \ + haproxy \ + && yum clean all + +{% elif base_distro in ['ubuntu'] %} + +RUN apt-get -y install --no-install-recommends \ + haproxy \ + && apt-get clean + +{% endif %} + +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} + +RUN yum -y install \ + openstack-neutron-lbaas \ + && yum clean all + + {% elif base_distro in ['ubuntu'] %} + +RUN apt-get -y install --no-install-recommends \ + neutron-lbaas-common \ + neutron-lbaasv2-agent \ + python-neutron-lbaas \ + && apt-get clean \ + + {% endif %} + +{% elif install_type == 'source' %} + +ADD neutron-lbaas-agent-archive /neutron-lbaas-agent-source +RUN ln -s neutron-lbaas-agent-source/* neutron_lbaas \ + && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /neutron_lbaas \ + && cp -r /neutron_lbaas/etc/* /etc/neutron/ \ + && cp -r /neutron_lbaas/etc/neutron/* /etc/neutron/ \ + && sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/neutron/rootwrap.conf + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_neutron_extend_start +RUN chmod 755 /usr/local/bin/kolla_neutron_extend_start + +{{ include_footer }} + +USER neutron diff --git a/docker/neutron/neutron-lbaas-agent/extend_start.sh b/docker/neutron/neutron-lbaas-agent/extend_start.sh new file mode 100644 index 000000000..6a1f96036 --- /dev/null +++ b/docker/neutron/neutron-lbaas-agent/extend_start.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# 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 + neutron-db-manage --service lbaas --config-file /etc/neutron/neutron.conf upgrade head + exit 0 +fi diff --git a/docker/neutron/neutron-server/Dockerfile.j2 b/docker/neutron/neutron-server/Dockerfile.j2 index 6fbfb2e2d..18edabe12 100644 --- a/docker/neutron/neutron-server/Dockerfile.j2 +++ b/docker/neutron/neutron-server/Dockerfile.j2 @@ -1,6 +1,23 @@ FROM {{ namespace }}/{{ image_prefix }}neutron-base:{{ tag }} MAINTAINER {{ maintainer }} +{% if install_type == 'binary' %} + {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %} + +RUN yum -y install \ + openstack-neutron-lbaas \ + && yum clean all + + {% elif base_distro in ['ubuntu'] %} + +RUN apt-get -y install --no-install-recommends \ + neutron-lbaas-common \ + neutron-lbaasv2-agent \ + python-neutron-lbaas \ + && apt-get clean \ + {% endif %} +{% endif %} + ADD plugins-archive / COPY extend_start.sh /usr/local/bin/kolla_neutron_extend_start RUN chmod 755 /usr/local/bin/kolla_neutron_extend_start \ -- cgit v1.2.3