aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/ovsdpdk
diff options
context:
space:
mode:
Diffstat (limited to 'kolla/docker/ovsdpdk')
-rw-r--r--kolla/docker/ovsdpdk/ovsdpdk-db/Dockerfile.j218
-rw-r--r--kolla/docker/ovsdpdk/ovsdpdk-db/extend_start.sh6
-rwxr-xr-xkolla/docker/ovsdpdk/ovsdpdk-db/start_ovsdb_server.sh30
-rw-r--r--kolla/docker/ovsdpdk/ovsdpdk-vswitchd/Dockerfile.j216
-rw-r--r--kolla/docker/ovsdpdk/ovsdpdk-vswitchd/extend_start.sh6
-rw-r--r--kolla/docker/ovsdpdk/ovsdpdk/Dockerfile.j240
-rw-r--r--kolla/docker/ovsdpdk/ovsdpdk/extend_start.sh10
7 files changed, 126 insertions, 0 deletions
diff --git a/kolla/docker/ovsdpdk/ovsdpdk-db/Dockerfile.j2 b/kolla/docker/ovsdpdk/ovsdpdk-db/Dockerfile.j2
new file mode 100644
index 000000000..2527fa0e6
--- /dev/null
+++ b/kolla/docker/ovsdpdk/ovsdpdk-db/Dockerfile.j2
@@ -0,0 +1,18 @@
+FROM {{ namespace }}/{{ image_prefix }}ovsdpdk:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block ovsdpdk_db_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+COPY extend_start.sh /usr/local/bin/kolla_ovsdpdk_extend_start
+COPY start_ovsdb_server.sh /usr/local/bin/start-ovsdb-server
+RUN chmod 644 /usr/local/bin/kolla_ovsdpdk_extend_start && \
+ chmod 755 /usr/local/bin/start-ovsdb-server
+
+{{ macros.kolla_patch_sources() }}
+
+{% block ovsdpdk_db_footer %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/kolla/docker/ovsdpdk/ovsdpdk-db/extend_start.sh b/kolla/docker/ovsdpdk/ovsdpdk-db/extend_start.sh
new file mode 100644
index 000000000..3883b50ed
--- /dev/null
+++ b/kolla/docker/ovsdpdk/ovsdpdk-db/extend_start.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+mkdir -p "/run/openvswitch"
+if [[ ! -e "/var/lib/openvswitch/conf.db" ]]; then
+ ovsdb-tool create "/var/lib/openvswitch/conf.db"
+fi
diff --git a/kolla/docker/ovsdpdk/ovsdpdk-db/start_ovsdb_server.sh b/kolla/docker/ovsdpdk/ovsdpdk-db/start_ovsdb_server.sh
new file mode 100755
index 000000000..5c92fba78
--- /dev/null
+++ b/kolla/docker/ovsdpdk/ovsdpdk-db/start_ovsdb_server.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# NOTE: (sbezverk) ovs_bridge and ovs_ext_intf variables get initialized only when
+# this script is executed for kubernetes deployment. With Ansible deployment, only
+# ovsdb-server gets launched and then the following workflow step will create
+# an external bridge and plug an external interface. With Kubernetes we want to
+# leverage its dynamic nature of automatic scaling up and down. It means all
+# activities related to creating initial bridge, plugging external interface
+# must be done by DaemonSet launched container.
+
+ovsdb_ip=$1
+ovs_bridge=$2
+ovs_ext_intf=$3
+
+# NOTE: (sbezverk) The reason for introducing this script is to be able
+# to launch ovsdb-server and to create the initial external bridge in one step.
+# It is required in order to be able to use DaemonSet.
+
+if [ ! -e $ovs_bridge ] && [ ! -e $ovs_ext_intf ]; then
+# NOTE: (sbezverk) This part is executed only by kubernetes deployment.
+# Creating external bridge
+ /usr/sbin/ovsdb-server /var/lib/openvswitch/conf.db --remote=punix:/var/run/openvswitch/db.sock --run="ovs-vsctl --no-wait --db=unix:/var/run/openvswitch/db.sock add-br $ovs_bridge"
+# Plug the external interface into the external bridge.
+ /usr/sbin/ovsdb-server /var/lib/openvswitch/conf.db --remote=punix:/var/run/openvswitch/db.sock --run="ovs-vsctl --no-wait --db=unix:/var/run/openvswitch/db.sock add-port $ovs_bridge $ovs_ext_intf"
+# Run ovsdb server process
+ /usr/sbin/ovsdb-server /var/lib/openvswitch/conf.db -vconsole:emer -vsyslog:err -vfile:info --remote=punix:/var/run/openvswitch/db.sock --remote=ptcp:6640 --log-file=/var/log/kolla/openvswitch/ovsdb-server.log
+else
+# NOTE: (sbezverk) This part is executed only by kolla-ansible deployment.
+ /usr/sbin/ovsdb-server /var/lib/openvswitch/conf.db -vconsole:emer -vsyslog:err -vfile:info --remote=punix:/run/openvswitch/db.sock --remote=ptcp:6640:$ovsdb_ip --log-file=/var/log/kolla/openvswitch/ovsdb-server.log
+fi
diff --git a/kolla/docker/ovsdpdk/ovsdpdk-vswitchd/Dockerfile.j2 b/kolla/docker/ovsdpdk/ovsdpdk-vswitchd/Dockerfile.j2
new file mode 100644
index 000000000..059efd46b
--- /dev/null
+++ b/kolla/docker/ovsdpdk/ovsdpdk-vswitchd/Dockerfile.j2
@@ -0,0 +1,16 @@
+FROM {{ namespace }}/{{ image_prefix }}ovsdpdk:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block ovsdpdk_vswitchd_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+COPY extend_start.sh /usr/local/bin/kolla_ovsdpdk_extend_start
+RUN chmod 644 /usr/local/bin/kolla_ovsdpdk_extend_start
+
+{{ macros.kolla_patch_sources() }}
+
+{% block ovsdpdk_vswitchd_footer %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/kolla/docker/ovsdpdk/ovsdpdk-vswitchd/extend_start.sh b/kolla/docker/ovsdpdk/ovsdpdk-vswitchd/extend_start.sh
new file mode 100644
index 000000000..cf9d733e8
--- /dev/null
+++ b/kolla/docker/ovsdpdk/ovsdpdk-vswitchd/extend_start.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# using userspace netdev datapath so do not loading ovs kernel module
+# chmod openvsitch run directory so libvirt can create vhost-user sockets.
+chmod 777 /var/run/openvswitch
+
diff --git a/kolla/docker/ovsdpdk/ovsdpdk/Dockerfile.j2 b/kolla/docker/ovsdpdk/ovsdpdk/Dockerfile.j2
new file mode 100644
index 000000000..eab4f5474
--- /dev/null
+++ b/kolla/docker/ovsdpdk/ovsdpdk/Dockerfile.j2
@@ -0,0 +1,40 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+{% block ovsdpdk_header %}{% endblock %}
+
+{% block ovsdpdk_install %}
+
+{% if base_package_type == 'rpm' %}
+
+#TODO(sean-k-mooney) create repo via open suse build system to package
+# for centos distro.
+
+RUN echo 'image not yet available for {{ base_distro }}' \
+ && /bin/false
+
+{% elif base_package_type == 'deb' %}
+
+{% set ovs_dpdk_packages = [
+ 'crudini',
+ 'libdpdk-dev',
+ 'openvswitch-switch-dpdk'
+] %}
+
+{{ macros.install_packages(ovs_dpdk_packages | customizable("packages")) }}
+
+RUN update-alternatives --set ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
+
+{% endif %}
+
+{% endblock %}
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 644 /usr/local/bin/kolla_extend_start
+
+{{ macros.kolla_patch_sources() }}
+
+{% block ovsdpdk_footer %}{% endblock %}
diff --git a/kolla/docker/ovsdpdk/ovsdpdk/extend_start.sh b/kolla/docker/ovsdpdk/ovsdpdk/extend_start.sh
new file mode 100644
index 000000000..60ab0c088
--- /dev/null
+++ b/kolla/docker/ovsdpdk/ovsdpdk/extend_start.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [[ ! -d "/var/log/kolla/openvswitch" ]]; then
+ mkdir -p /var/log/kolla/openvswitch
+fi
+if [[ $(stat -c %a /var/log/kolla/openvswitch) != "755" ]]; then
+ chmod 755 /var/log/kolla/openvswitch
+fi
+
+. /usr/local/bin/kolla_ovsdpdk_extend_start