summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Szumski <doug@stackhpc.com>2018-07-09 17:51:26 +0100
committerDoug Szumski <doug@stackhpc.com>2018-07-11 13:56:47 +0000
commit72f85b422635fc8ff6420549efe474c5ab6d1c05 (patch)
treeb3560877b513c9e63262228ec252173bb8c0fa3c
parent932f31593a5d94c3650173d9e081d09ed4266227 (diff)
downloadkolla-72f85b422635fc8ff6420549efe474c5ab6d1c05.tar.gz
kolla-72f85b422635fc8ff6420549efe474c5ab6d1c05.zip
Add support for building Logstash
Add support for building Logstash 5.x for both Centos and Debian based x86 distros. Partially-Implements: blueprint monasca-containers Change-Id: I4e2422d1cd2ae4c1f4aa63e8e543e725a1dc840c
-rw-r--r--docker/base/sources.list.ubuntu2
-rw-r--r--docker/logstash/Dockerfile.j244
-rw-r--r--docker/logstash/extend_start.sh8
-rwxr-xr-xkolla/common/config.py5
-rw-r--r--releasenotes/notes/add-logstash-27da5de156efb943.yaml3
5 files changed, 61 insertions, 1 deletions
diff --git a/docker/base/sources.list.ubuntu b/docker/base/sources.list.ubuntu
index b999624fe..54240fc2f 100644
--- a/docker/base/sources.list.ubuntu
+++ b/docker/base/sources.list.ubuntu
@@ -12,7 +12,7 @@ deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe
# are qemu, libvirt, and openvswitch.
deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/queens main
-# Elastic & kibana repo
+# Elasticsearch, Logstash & Kibana repo
deb https://artifacts.elastic.co/packages/5.x/apt stable main
# InfluxDB repo
diff --git a/docker/logstash/Dockerfile.j2 b/docker/logstash/Dockerfile.j2
new file mode 100644
index 000000000..2bb268467
--- /dev/null
+++ b/docker/logstash/Dockerfile.j2
@@ -0,0 +1,44 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+{% block logstash_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='logstash', shell='/bin/bash', homedir='/usr/share/logstash') }}
+
+{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
+ {% set logstash_packages = [
+ 'logstash',
+ 'java-1.8.0-openjdk-headless'
+ ] %}
+
+ENV JAVA_HOME /usr/lib/jvm/jre-1.8.0-openjdk/
+
+{% elif base_distro in ['debian', 'ubuntu'] %}
+ {% set logstash_packages = [
+ 'logstash',
+ 'openjdk-8-jre-headless'
+ ] %}
+
+{% if base_arch == 'x86_64' %}
+ARG java_arch=amd64
+{% elif base_arch == 'aarch64' %}
+ARG java_arch=arm64
+{% else %}
+ARG java_arch={{ base_arch }}
+{% endif %}
+
+ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-${java_arch}/
+
+{% endif %}
+
+{{ macros.install_packages(logstash_packages | customizable("packages")) }}
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+
+RUN chmod 755 /usr/local/bin/kolla_extend_start
+
+{% block logstash_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER logstash
diff --git a/docker/logstash/extend_start.sh b/docker/logstash/extend_start.sh
new file mode 100644
index 000000000..99152b1b5
--- /dev/null
+++ b/docker/logstash/extend_start.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+if [[ ! -d "/var/log/kolla/logstash" ]]; then
+ mkdir -p /var/log/kolla/logstash
+fi
+if [[ $(stat -c %a /var/log/kolla/logstash) != "755" ]]; then
+ chmod 755 /var/log/kolla/logstash
+fi
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 89a4c3e9c..da67d0b3c 100755
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -58,6 +58,7 @@ _PROFILE_OPTS = [
'keepalived',
'kibana',
'kolla-toolbox',
+ 'logstash',
'mariadb',
'memcached',
'mongodb',
@@ -1093,6 +1094,10 @@ USERS = {
'hugetlbfs-user': {
'uid': 42477, # unused user, but we need the group for vhost socket
'gid': 42477,
+ },
+ 'logstash-user': {
+ 'uid': 42478,
+ 'gid': 42478,
}
}
diff --git a/releasenotes/notes/add-logstash-27da5de156efb943.yaml b/releasenotes/notes/add-logstash-27da5de156efb943.yaml
new file mode 100644
index 000000000..c469dbf9a
--- /dev/null
+++ b/releasenotes/notes/add-logstash-27da5de156efb943.yaml
@@ -0,0 +1,3 @@
+---
+features:
+ - Add support for building a Logstash 5.x image.