aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBai Yongjun <byj994@163.com>2018-11-22 22:27:02 +0800
committerTaeha Kim <kthguru@gmail.com>2019-03-27 16:19:13 +0000
commit265f643295efa50b8d5c7dc716353883d645c588 (patch)
tree649a7e668aabc7b789da61a920b6aef6815edb4b
parent09f37541d8e57d85aa568a0ad6a23c44ef11a36e (diff)
downloadkolla-265f643295efa50b8d5c7dc716353883d645c588.tar.gz
kolla-265f643295efa50b8d5c7dc716353883d645c588.zip
Add cyborg to kolla
Because kolla not have cyborg so should add this. Implements: blueprint add-cyborg Change-Id: I497e67e3a754fccfd2ef5a82f13ccfaf890a6fcd
-rw-r--r--README.rst1
-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
-rwxr-xr-xkolla/common/config.py8
-rwxr-xr-xkolla/image/build.py6
-rw-r--r--releasenotes/notes/add-cyborg-images-cab2b3a24a071c38.yaml3
11 files changed, 181 insertions, 0 deletions
diff --git a/README.rst b/README.rst
index 1e57d460a..994a44a98 100644
--- a/README.rst
+++ b/README.rst
@@ -80,6 +80,7 @@ Kolla provides images to deploy the following OpenStack projects:
- `Cinder <https://docs.openstack.org/cinder/latest/>`__
- `CloudKitty <https://docs.openstack.org/cloudkitty/latest/>`__
- `Congress <https://docs.openstack.org/congress/latest/>`__
+- `Cyborg <https://docs.openstack.org/cyborg/latest/>`__
- `Designate <https://docs.openstack.org/designate/latest/>`__
- `Dragonflow <https://docs.openstack.org/dragonflow/latest/>`__
- `EC2-API <https://wiki.openstack.org/wiki/EC2API>`__
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 %}
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 4f2f250d6..4946e80ba 100755
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -338,6 +338,10 @@ SOURCES = {
'type': 'git',
'reference': 'master',
'location': ('https://github.com/pulp/crane.git')},
+ 'cyborg-base': {
+ 'type': 'url',
+ 'location': ('$tarballs_base/cyborg/'
+ 'cyborg-master.tar.gz')},
'designate-base': {
'type': 'url',
'location': ('$tarballs_base/designate/'
@@ -1177,6 +1181,10 @@ USERS = {
'placement-user': {
'uid': 42482,
'gid': 42482,
+ },
+ 'cyborg-user': {
+ 'uid': 42483,
+ 'gid': 42483,
}
}
diff --git a/kolla/image/build.py b/kolla/image/build.py
index 6fbe58408..7683d7904 100755
--- a/kolla/image/build.py
+++ b/kolla/image/build.py
@@ -82,6 +82,7 @@ SKIPPED_IMAGES = {
"almanach-base",
"bifrost-base",
"blazar-base",
+ "cyborg-base",
"dragonflow-base",
"freezer-base",
"karbor-base",
@@ -109,6 +110,7 @@ SKIPPED_IMAGES = {
"cloudkitty-base",
"congress-base",
"crane",
+ "cyborg-base",
"dragonflow-base",
"ec2-api",
"freezer-base",
@@ -136,6 +138,7 @@ SKIPPED_IMAGES = {
],
'ubuntu+source': [
"crane",
+ "cyborg-base",
# There is no qdrouterd package for ubuntu bionic
"qdrouterd",
"tripleoclient",
@@ -150,6 +153,7 @@ SKIPPED_IMAGES = {
"cloudkitty-base",
"congress-base",
"crane",
+ "cyborg-base",
"dragonflow-base",
"ec2-api",
"freezer-base",
@@ -176,6 +180,7 @@ SKIPPED_IMAGES = {
],
'debian+source': [
"crane",
+ "cyborg-base",
"sensu-base",
"tripleoclient",
"tripleo-ui"
@@ -185,6 +190,7 @@ SKIPPED_IMAGES = {
"bifrost-base",
"blazar-base",
"crane",
+ "cyborg-base",
"dragonflow-base",
"freezer-base",
"karbor-base",
diff --git a/releasenotes/notes/add-cyborg-images-cab2b3a24a071c38.yaml b/releasenotes/notes/add-cyborg-images-cab2b3a24a071c38.yaml
new file mode 100644
index 000000000..a1e68103f
--- /dev/null
+++ b/releasenotes/notes/add-cyborg-images-cab2b3a24a071c38.yaml
@@ -0,0 +1,3 @@
+---
+features:
+ - Cyborg Docker images are available in Kolla