aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorprithiv <prithiv.mohan@intel.com>2016-07-29 15:46:30 +0100
committerPrithiv <prithiv.mohan@intel.com>2016-08-06 12:06:39 +0000
commiteb41179a73502ea3f977ba4f07bf76675bd6b864 (patch)
treed265035b62cbfdbfce03b2e34cce2725877e8fa0
parent5ce4de6b2b76ca14387e5e5984f3b1067a4a223b (diff)
downloadkolla-eb41179a73502ea3f977ba4f07bf76675bd6b864.tar.gz
kolla-eb41179a73502ea3f977ba4f07bf76675bd6b864.zip
Dockerfiles for Networking-SFC Container
Networking-SFC is a neutron big-tent project Kolla does not have Networking-SFC agent support for now. This is essential for Service Function Chaining use case. Build Networking-SFC Container. Change-Id: I67b4d6e061dbe31e2211cd3210726ab4c30cd087 Partially-Implements: blueprint enable-networking-sfc-support
-rw-r--r--docker/neutron/neutron-networking-sfc-agent/Dockerfile.j226
-rw-r--r--docker/neutron/neutron-networking-sfc-agent/extend_start.sh8
-rw-r--r--kolla/common/config.py4
-rw-r--r--tests/test_build.py12
4 files changed, 47 insertions, 3 deletions
diff --git a/docker/neutron/neutron-networking-sfc-agent/Dockerfile.j2 b/docker/neutron/neutron-networking-sfc-agent/Dockerfile.j2
new file mode 100644
index 000000000..e5d2d348c
--- /dev/null
+++ b/docker/neutron/neutron-networking-sfc-agent/Dockerfile.j2
@@ -0,0 +1,26 @@
+FROM {{ namespace }}/{{ image_prefix }}neutron-base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% if install_type == 'binary' %}
+
+RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
+ && /bin/false
+
+{% elif install_type == 'source' %}
+
+ADD neutron-networking-sfc-agent-archive /neutron-networking-sfc-agent-source
+RUN ln -s neutron-networking-sfc-agent-source/* neutron_networking-sfc-agent \
+ && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /neutron_networking-sfc-agent \
+ && cp /neutron_networking-sfc-agent/etc/neutron/rootwrap.d/* /etc/neutron/rootwrap.d \
+ && 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
+
+{% block neutron_networking_sfc_agent_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+{{ include_footer }}
+
+USER neutron
diff --git a/docker/neutron/neutron-networking-sfc-agent/extend_start.sh b/docker/neutron/neutron-networking-sfc-agent/extend_start.sh
new file mode 100644
index 000000000..d721b4d7b
--- /dev/null
+++ b/docker/neutron/neutron-networking-sfc-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 --subproject networking-sfc --config-file /etc/neutron/neutron.conf upgrade head
+ exit 0
+fi
diff --git a/kolla/common/config.py b/kolla/common/config.py
index b243a953b..31d006c75 100644
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -234,6 +234,10 @@ SOURCES = {
'type': 'url',
'location': ('http://tarballs.openstack.org/neutron-lbaas/'
'neutron-lbaas-master.tar.gz')},
+ 'neutron-networking-sfc-agent': {
+ 'type': 'url',
+ 'location': ('http://tarballs.openstack.org/networking-sfc/'
+ 'networking-sfc-master.tar.gz')},
'nova-base': {
'type': 'url',
'location': ('http://tarballs.openstack.org/nova/'
diff --git a/tests/test_build.py b/tests/test_build.py
index f8f846034..77cc87c88 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -68,8 +68,10 @@ class BuildTest(object):
class BuildTestCentosBinary(BuildTest, base.BaseTestCase):
excluded_images = ["kuryr",
+ "neutron-networking-sfc-agent",
"senlin-base",
- "watcher-base"]
+ "watcher-base"
+ ]
def setUp(self):
super(BuildTestCentosBinary, self).setUp()
@@ -88,7 +90,9 @@ class BuildTestCentosSource(BuildTest, base.BaseTestCase):
class BuildTestUbuntuBinary(BuildTest, base.BaseTestCase):
- excluded_images = ["zaqar"]
+ excluded_images = ["neutron-networking-sfc-agent",
+ "zaqar"
+ ]
def setUp(self):
super(BuildTestUbuntuBinary, self).setUp()
@@ -107,8 +111,10 @@ class BuildTestUbuntuSource(BuildTest, base.BaseTestCase):
class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase):
excluded_images = ["kuryr",
+ "neutron-networking-sfc-agent",
"senlin-base",
- "watcher-base"]
+ "watcher-base"
+ ]
def setUp(self):
super(BuildTestOracleLinuxBinary, self).setUp()