aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Szumski <doug@stackhpc.com>2018-06-11 11:26:13 +0100
committerDoug Szumski <doug@stackhpc.com>2018-07-13 16:09:09 +0100
commit91d23981b2a711413e1ac7945aaf86e0866259b1 (patch)
treeefdfe4a67e1f996008ae1615b0f50eb3ba5bcc39
parent692970bc5503ae28cbc89088ba155c8026eb6c2e (diff)
downloadkolla-91d23981b2a711413e1ac7945aaf86e0866259b1.tar.gz
kolla-91d23981b2a711413e1ac7945aaf86e0866259b1.zip
Add support for deploying Apache Storm
The motiviation behind this is to provide Apache Storm for the Monasca Thresh component which is used for generating alerts as part of the Monasca Framework. SHA512 sum is from http://www.us.apache.org/dist/storm/ apache-storm-1.1.2/apache-storm-1.1.2.tar.gz.sha Change-Id: I6eb6be91470385c824baaeb37f90b582fc88aed4 Partially-Implements: blueprint monasca-containers
-rw-r--r--docker/storm/Dockerfile.j242
-rw-r--r--docker/storm/extend_start.sh9
-rwxr-xr-xkolla/common/config.py5
-rw-r--r--releasenotes/notes/add-apache-storm-927c5318d91b5db3.yaml3
4 files changed, 59 insertions, 0 deletions
diff --git a/docker/storm/Dockerfile.j2 b/docker/storm/Dockerfile.j2
new file mode 100644
index 000000000..791c9ca4a
--- /dev/null
+++ b/docker/storm/Dockerfile.j2
@@ -0,0 +1,42 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+{% block storm %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='storm', homedir='/opt/storm') }}
+
+{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
+ {% set storm_packages = [
+ 'java-1.8.0-openjdk-headless',
+ ] %}
+{% elif base_distro in ['debian', 'ubuntu'] %}
+ {% set storm_packages = [
+ 'default-jre-headless',
+ ] %}
+{% endif %}
+
+{{ macros.install_packages(storm_packages | customizable("packages")) }}
+
+{% block storm_version %}
+ENV storm_version=1.1.2
+ENV storm_url=http://www.mirrorservice.org/sites/ftp.apache.org/storm/apache-storm-${storm_version}/apache-storm-${storm_version}.tar.gz
+ENV storm_pkg_sha512sum=4ec7554d4e242c5cfa3b010f63b2ed65866d0768bfa04c7ae87004d21994041ef25b198a236a87f14ac3b36b698f117338080d9b7d9c0f561b7de256bf2e10d2
+{% endblock %}
+
+{% block storm_install %}
+RUN curl -sSL -o /tmp/storm.tgz ${storm_url} \
+ && echo "${storm_pkg_sha512sum} /tmp/storm.tgz" | sha512sum -c \
+ && tar --strip 1 -xvf /tmp/storm.tgz -C /opt/storm \
+ && rm -f /tmp/storm.tgz
+
+{% endblock %}
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 755 /usr/local/bin/kolla_extend_start
+
+{% block storm_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER storm
diff --git a/docker/storm/extend_start.sh b/docker/storm/extend_start.sh
new file mode 100644
index 000000000..6c9bb0b62
--- /dev/null
+++ b/docker/storm/extend_start.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Create log directory, with appropriate permissions
+if [[ ! -d "/var/log/kolla/storm" ]]; then
+ mkdir -p /var/log/kolla/storm
+fi
+if [[ $(stat -c %a /var/log/kolla/storm) != "755" ]]; then
+ chmod 755 /var/log/kolla/storm
+fi
diff --git a/kolla/common/config.py b/kolla/common/config.py
index da67d0b3c..4f0dd345f 100755
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -70,6 +70,7 @@ _PROFILE_OPTS = [
'redis',
'rsyslog',
'skydive',
+ 'storm',
'tgtd',
],
help='Infra images'),
@@ -1098,6 +1099,10 @@ USERS = {
'logstash-user': {
'uid': 42478,
'gid': 42478,
+ },
+ 'storm-user': {
+ 'uid': 42479,
+ 'gid': 42479,
}
}
diff --git a/releasenotes/notes/add-apache-storm-927c5318d91b5db3.yaml b/releasenotes/notes/add-apache-storm-927c5318d91b5db3.yaml
new file mode 100644
index 000000000..7325a0442
--- /dev/null
+++ b/releasenotes/notes/add-apache-storm-927c5318d91b5db3.yaml
@@ -0,0 +1,3 @@
+---
+features:
+ - Add support for building an Apache Storm image.