aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-19 15:25:55 +0000
committerGerrit Code Review <review@openstack.org>2016-02-19 15:25:55 +0000
commit0943e12fcabd25f0aa251f6414723a62197e69f1 (patch)
treecf7750e6ec8c06ea6c9e4aaa8c455e9207bae4f7 /docker
parent2ccb83cee19425ca081a0c106b097ec3da861ed0 (diff)
parent792666dd79aef7d041c6d5f0ce1f57125ee1affc (diff)
downloadkolla-0943e12fcabd25f0aa251f6414723a62197e69f1.tar.gz
kolla-0943e12fcabd25f0aa251f6414723a62197e69f1.zip
Merge "Added Elasticearch and its deployment."
Diffstat (limited to 'docker')
-rw-r--r--docker/base/Dockerfile.j26
-rw-r--r--docker/base/elasticsearch.yum.repo6
-rw-r--r--docker/base/sources.list3
-rw-r--r--docker/elasticsearch/Dockerfile.j240
-rw-r--r--docker/elasticsearch/elasticsearch_sudoers1
-rw-r--r--docker/elasticsearch/extend_start.sh6
6 files changed, 61 insertions, 1 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index 4fe02e7e1..2b394b400 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -18,6 +18,8 @@ ENV KOLLA_INSTALL_METATYPE {{ install_metatype }}
{% if base_distro in ['fedora', 'centos', 'oraclelinux', 'rhel'] %}
#### BEGIN REPO ENABLEMENT
+# Turns on Elasticsearch repos
+COPY elasticsearch.yum.repo /etc/yum.repos.d/elasticsearch.repo
# Turns on MariaDB repos throughout the RPM build
COPY mariadb.yum.repo /etc/yum.repos.d/MariaDB.repo
@@ -28,7 +30,8 @@ RUN yum -y install http://repo.percona.com/release/7/RPMS/x86_64/percona-release
RUN rpm --import http://yum.mariadb.org/RPM-GPG-KEY-MariaDB \
&& rpm --import https://download.ceph.com/keys/release.asc \
- && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
+ && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona \
+ && rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
{% if install_metatype in ['rdo', 'mixed'] %}
@@ -153,6 +156,7 @@ RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 199369E540
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 391A9AA2147192839E9DB0315EDB1B62EC4926EA \
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 430BDF5C56E7C94E848EE60C1C4CBDCDCD2EFD2A \
&& apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 08B73419AC32B4E966C1A330E84AC2C0460F3994 \
+ && apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 46095ACC8548582C1A2699A9D27D666CD88E42B4 \
&& apt-get update \
&& apt-get upgrade -y \
&& apt-get dist-upgrade -y \
diff --git a/docker/base/elasticsearch.yum.repo b/docker/base/elasticsearch.yum.repo
new file mode 100644
index 000000000..e9d28a615
--- /dev/null
+++ b/docker/base/elasticsearch.yum.repo
@@ -0,0 +1,6 @@
+[elasticsearch-2.x]
+name=Elasticsearch repository for 2.x packages
+baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
+gpgcheck=1
+gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
+enabled=1
diff --git a/docker/base/sources.list b/docker/base/sources.list
index d63541f02..3a6684490 100644
--- a/docker/base/sources.list
+++ b/docker/base/sources.list
@@ -18,3 +18,6 @@ deb http://repo.percona.com/apt trusty main
# Ceph repo
deb http://download.ceph.com/debian-hammer/ trusty main
+
+# Elastic repo
+deb http://packages.elastic.co/elasticsearch/2.x/debian stable main
diff --git a/docker/elasticsearch/Dockerfile.j2 b/docker/elasticsearch/Dockerfile.j2
new file mode 100644
index 000000000..aa9f43c1b
--- /dev/null
+++ b/docker/elasticsearch/Dockerfile.j2
@@ -0,0 +1,40 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+
+ENV JAVA_HOME /usr/lib/jvm/jre-1.7.0-openjdk/
+
+RUN yum -y install \
+ java-1.7.0-openjdk \
+ elasticsearch-2.1.1 \
+ && yum clean all
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+ENV JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk-amd64/
+
+RUN apt-get install -y --no-install-recommends \
+ openjdk-7-jre \
+ elasticsearch=2.1.1 \
+ && apt-get clean
+
+{% endif %}
+
+COPY elasticsearch_sudoers /etc/sudoers.d/elasticsearch_sudoers
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 755 /usr/local/bin/kolla_extend_start \
+ && chmod 750 /etc/sudoers.d \
+ && chmod 440 /etc/sudoers.d/elasticsearch_sudoers \
+ && usermod -a -G kolla elasticsearch
+
+
+# by default elasticsearch shell is /bin/false, we need
+# /bin/bash to run elasticsearch as non-root
+# https://discuss.elastic.co/t/running-as-non-root-user-service-wrapper-has-changed/7863
+RUN usermod -s /bin/bash elasticsearch -d /usr/share/elasticsearch
+
+{{ include_footer }}
+
+USER elasticsearch
diff --git a/docker/elasticsearch/elasticsearch_sudoers b/docker/elasticsearch/elasticsearch_sudoers
new file mode 100644
index 000000000..76396c68a
--- /dev/null
+++ b/docker/elasticsearch/elasticsearch_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /bin/chown elasticsearch\: /var/lib/elasticsearch/data, /usr/bin/chown elasticsearch\: /var/lib/elasticsearch/data
diff --git a/docker/elasticsearch/extend_start.sh b/docker/elasticsearch/extend_start.sh
new file mode 100644
index 000000000..ac78966fb
--- /dev/null
+++ b/docker/elasticsearch/extend_start.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# Only update permissions if permissions need to be updated
+if [[ $(stat -c %U:%G /var/lib/elasticsearch/data) != "elasticsearch:elasticsearch" ]]; then
+ sudo chown elasticsearch: /var/lib/elasticsearch/data
+fi