diff options
Diffstat (limited to 'kolla/docker/ovsdpdk')
| -rw-r--r-- | kolla/docker/ovsdpdk/ovsdpdk-db/Dockerfile.j2 | 18 | ||||
| -rw-r--r-- | kolla/docker/ovsdpdk/ovsdpdk-db/extend_start.sh | 6 | ||||
| -rwxr-xr-x | kolla/docker/ovsdpdk/ovsdpdk-db/start_ovsdb_server.sh | 30 | ||||
| -rw-r--r-- | kolla/docker/ovsdpdk/ovsdpdk-vswitchd/Dockerfile.j2 | 16 | ||||
| -rw-r--r-- | kolla/docker/ovsdpdk/ovsdpdk-vswitchd/extend_start.sh | 6 | ||||
| -rw-r--r-- | kolla/docker/ovsdpdk/ovsdpdk/Dockerfile.j2 | 40 | ||||
| -rw-r--r-- | kolla/docker/ovsdpdk/ovsdpdk/extend_start.sh | 10 |
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 |
