aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2019-03-28 19:16:59 +0000
committerGerrit Code Review <review@openstack.org>2019-03-28 19:16:59 +0000
commit154950815dbe9f38ce1f61d06e5d56c9660a89f2 (patch)
treeb69a8491b0c035d4131a9429fa1d834ac1bc5719 /docker
parent83e8be4f0597c4572f58a1052010d3660064cdb9 (diff)
parent265f643295efa50b8d5c7dc716353883d645c588 (diff)
downloadkolla-154950815dbe9f38ce1f61d06e5d56c9660a89f2.tar.gz
kolla-154950815dbe9f38ce1f61d06e5d56c9660a89f2.zip
Merge "Add cyborg to kolla"
Diffstat (limited to 'docker')
-rw-r--r--docker/cyborg/cyborg-agent/Dockerfile.j246
-rw-r--r--docker/cyborg/cyborg-api/Dockerfile.j242
-rw-r--r--docker/cyborg/cyborg-api/extend_start.sh16
-rw-r--r--docker/cyborg/cyborg-base/Dockerfile.j236
-rw-r--r--docker/cyborg/cyborg-base/cyborg_sudoers1
-rwxr-xr-xdocker/cyborg/cyborg-base/extend_start.sh15
-rw-r--r--docker/cyborg/cyborg-conductor/Dockerfile.j27
7 files changed, 163 insertions, 0 deletions
diff --git a/docker/cyborg/cyborg-agent/Dockerfile.j2 b/docker/cyborg/cyborg-agent/Dockerfile.j2
new file mode 100644
index 000000000..398e6b298
--- /dev/null
+++ b/docker/cyborg/cyborg-agent/Dockerfile.j2
@@ -0,0 +1,46 @@
+FROM {{ namespace }}/{{ image_prefix }}cyborg-base:{{ tag }}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+{% block cyborg_agent_header %}{% endblock %}
+{% import "macros.j2" as macros with context %}
+
+{% if install_type == 'binary' %}
+
+RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
+ && /bin/false
+
+{% elif install_type == 'source' %}
+
+{% set cyborg_agent_pip_packages = [
+ 'cursive'
+] %}
+
+{% endif %}
+
+RUN {{ macros.install_pip(cyborg_agent_pip_packages | customizable("pip_packages")) }}
+
+{% if base_package_type == 'rpm' %}
+
+ENV opae_libs_rpm_url=https://github.com/OPAE/opae-sdk/releases/download/1.1.0-2/opae-libs-1.1.0-2.x86_64.rpm
+ENV opae_libs_rpm_sha1sum=3a10f80d64be46bb8d99ba88548646d0e368a06e
+
+ENV opae_devel_rpm_url=https://github.com/OPAE/opae-sdk/releases/download/1.1.0-2/opae-devel-1.1.0-2.x86_64.rpm
+ENV opae_devel_rpm_sha1sum=461356b987b41843f60123d66195620bf1e4e28e
+
+RUN curl -sSL -o /tmp/opae-libs.rpm ${opae_libs_rpm_url} \
+ && echo "${opae_libs_rpm_sha1sum} /tmp/opae-libs.rpm" | sha1sum -c \
+ && curl -sSL -o /tmp/opae-devel.rpm ${opae_devel_rpm_url} \
+ && echo "${opae_devel_rpm_sha1sum} /tmp/opae-devel.rpm" | sha1sum -c \
+ && yum -y install /tmp/opae-libs.rpm /tmp/opae-devel.rpm \
+ && rm -f /tmp/opae-libs.rpm /tmp/opae-devel.rpm
+
+# NOTE(Bai Yongjun) Required packages are only supported Ubuntu16.04
+# Please check the details:https://github.com/OPAE/opae-sdk/releases/tag/1.1.0-2
+{% elif base_package_type == 'deb' %}
+
+RUN echo 'No supported packages' \
+ && /bin/false
+
+{% endif %}
+{% block cyborg_agent_footer %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/docker/cyborg/cyborg-api/Dockerfile.j2 b/docker/cyborg/cyborg-api/Dockerfile.j2
new file mode 100644
index 000000000..0d1857220
--- /dev/null
+++ b/docker/cyborg/cyborg-api/Dockerfile.j2
@@ -0,0 +1,42 @@
+FROM {{ namespace }}/{{ image_prefix }}cyborg-base:{{ tag }}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+{% block cyborg_api_header %}{% endblock %}
+{% import "macros.j2" as macros with context %}
+
+{% if install_type == 'binary' %}
+
+RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
+ && /bin/false
+
+{% elif install_type == 'source' %}
+ {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
+ {% set cyborg_api_packages = [
+ 'mod_ssl',
+ 'mod_wsgi'
+ ] %}
+ {% elif base_distro in ['debian', 'ubuntu'] %}
+ {% set cyborg_api_packages = [
+ 'apache2',
+ 'libapache2-mod-wsgi'
+ ] %}
+ {% endif %}
+
+{% endif %}
+
+{{ macros.install_packages(cyborg_api_packages | customizable("packages")) }}
+
+{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
+RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
+ && sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
+
+{% elif base_distro in ['debian', 'ubuntu'] %}
+RUN echo > /etc/apache2/ports.conf
+
+{% endif %}
+
+COPY extend_start.sh /usr/local/bin/kolla_cyborg_extend_start
+RUN chmod 755 /usr/local/bin/kolla_cyborg_extend_start
+
+{% block cyborg_api_footer %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/docker/cyborg/cyborg-api/extend_start.sh b/docker/cyborg/cyborg-api/extend_start.sh
new file mode 100644
index 000000000..a96619d93
--- /dev/null
+++ b/docker/cyborg/cyborg-api/extend_start.sh
@@ -0,0 +1,16 @@
+#!/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
+ cyborg-dbsync
+ exit 0
+fi
+
+if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then
+ # Loading Apache2 ENV variables
+ . /etc/apache2/envvars
+ rm -rf /var/run/apache2/*
+else
+ rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd*
+fi
diff --git a/docker/cyborg/cyborg-base/Dockerfile.j2 b/docker/cyborg/cyborg-base/Dockerfile.j2
new file mode 100644
index 000000000..7e411b535
--- /dev/null
+++ b/docker/cyborg/cyborg-base/Dockerfile.j2
@@ -0,0 +1,36 @@
+FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+{% block cyborg_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='cyborg') }}
+
+{% if install_type == 'binary' %}
+
+RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
+ && /bin/false
+
+{% elif install_type == 'source' %}
+
+ADD cyborg-base-archive /cyborg-base-source
+
+{% set cyborg_base_pip_packages = [
+ '/cyborg'
+] %}
+
+RUN ln -s cyborg-base-source/* cyborg \
+ && {{ macros.install_pip(cyborg_base_pip_packages | customizable("pip_packages")) }}
+
+{% endif %}
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+COPY cyborg_sudoers /etc/sudoers.d/kolla_cyborg_sudoers
+
+RUN chmod 750 /etc/sudoers.d \
+ && touch /usr/local/bin/kolla_cyborg_extend_start \
+ && chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_cyborg_extend_start
+
+{% block cyborg_footer %}{% endblock %}
+{% block footer %}{% endblock %}
diff --git a/docker/cyborg/cyborg-base/cyborg_sudoers b/docker/cyborg/cyborg-base/cyborg_sudoers
new file mode 100644
index 000000000..63440026d
--- /dev/null
+++ b/docker/cyborg/cyborg-base/cyborg_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R cyborg\: /var/lib/cyborg/, /bin/chown -R cyborg\: /var/lib/cyborg/
diff --git a/docker/cyborg/cyborg-base/extend_start.sh b/docker/cyborg/cyborg-base/extend_start.sh
new file mode 100755
index 000000000..10a58c626
--- /dev/null
+++ b/docker/cyborg/cyborg-base/extend_start.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Create log dir for Cyborg logs
+CYBORG_LOG_DIR="/var/log/kolla/cyborg"
+if [[ ! -d "${CYBORG_LOG_DIR}" ]]; then
+ mkdir -p ${CYBORG_LOG_DIR}
+fi
+if [[ $(stat -c %U:%G ${CYBORG_LOG_DIR}) != "cyborg:kolla" ]]; then
+ chown cyborg:kolla ${CYBORG_LOG_DIR}
+fi
+if [[ $(stat -c %a ${CYBORG_LOG_DIR}) != "755" ]]; then
+ chmod 755 ${CYBORG_LOG_DIR}
+fi
+
+. /usr/local/bin/kolla_cyborg_extend_start
diff --git a/docker/cyborg/cyborg-conductor/Dockerfile.j2 b/docker/cyborg/cyborg-conductor/Dockerfile.j2
new file mode 100644
index 000000000..de0211bda
--- /dev/null
+++ b/docker/cyborg/cyborg-conductor/Dockerfile.j2
@@ -0,0 +1,7 @@
+FROM {{ namespace }}/{{ image_prefix }}cyborg-base:{{ tag }}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+{% block cyborg_conductor_header %}{% endblock %}
+
+{% block cyborg_conductor_footer %}{% endblock %}
+{% block footer %}{% endblock %}