aboutsummaryrefslogtreecommitdiff
path: root/docker/fluentd
diff options
context:
space:
mode:
authorSerguei Bezverkhi <sbezverk@cisco.com>2016-09-23 10:59:05 -0400
committerSerguei Bezverkhi <sbezverk@cisco.com>2016-10-12 13:32:23 -0400
commit749679448a9d11393ed150647e8dbb226bd29e8f (patch)
tree47a8b95a3a150fe4da545ebc09251913a4b86047 /docker/fluentd
parent9df73ecc836cf35e710af8a2496bba8942543ec8 (diff)
downloadkolla-749679448a9d11393ed150647e8dbb226bd29e8f.tar.gz
kolla-749679448a9d11393ed150647e8dbb226bd29e8f.zip
Adds Fluentd docker image required for kolla-kube
This PS adds Fluentd docker image to Kolla. Kolla currently does not use Fluentd for log collection, but this image is required for Kubernetes centralized logging solution. Change-Id: I719661d75f5044239a1fd52080d322c77490ecae Partially_Implements: blueprint kubernetes-images
Diffstat (limited to 'docker/fluentd')
-rw-r--r--docker/fluentd/Dockerfile.j254
-rw-r--r--docker/fluentd/extend_start.sh16
-rw-r--r--docker/fluentd/fluentd_sudoers4
-rw-r--r--docker/fluentd/td.repo5
4 files changed, 79 insertions, 0 deletions
diff --git a/docker/fluentd/Dockerfile.j2 b/docker/fluentd/Dockerfile.j2
new file mode 100644
index 000000000..bc20b8ff3
--- /dev/null
+++ b/docker/fluentd/Dockerfile.j2
@@ -0,0 +1,54 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+MAINTAINER {{ maintainer }}
+
+{% block fluentd_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
+
+RUN rpm --import https://packages.treasuredata.com/GPG-KEY-td-agent
+
+COPY td.repo /etc/yum.repos.d/td.repo
+
+ {% set fluentd_packages = [
+ 'td-agent',
+ 'gcc-c++',
+ 'make'
+ ] %}
+
+{% elif base_distro in ['ubuntu', 'debian'] %}
+
+RUN curl https://packages.treasuredata.com/GPG-KEY-td-agent | apt-key add - \
+ && echo "deb http://packages.treasuredata.com/2/ubuntu/xenial/ xenial contrib" > /etc/apt/sources.list.d/treasure-data.list \
+ && apt-get update
+
+ {% set fluentd_packages = [
+ 'td-agent',
+ 'make',
+ 'g++'
+ ] %}
+{% endif %}
+
+{{ macros.install_packages(fluentd_packages | customizable("packages")) }}
+
+RUN ulimit -n 65536 \
+ && sed -i -e "s/USER=td-agent/USER=root/" -e "s/GROUP=td-agent/GROUP=root/" /etc/init.d/td-agent \
+ && td-agent-gem install fluent-plugin-kubernetes_metadata_filter fluent-plugin-elasticsearch fluent-plugin-grep \
+ && rm -f /etc/td-agent/td-agent.conf
+
+COPY fluentd_sudoers /etc/sudoers.d/kolla_fluentd_sudoers
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+
+RUN usermod -a -G kolla td-agent \
+ && chmod 440 /etc/sudoers.d/kolla_fluentd_sudoers \
+ && chmod 755 /usr/local/bin/kolla_extend_start \
+ && chown -R td-agent: /etc/td-agent \
+ && mkdir /var/lib/td-agent \
+ && chown -R td-agent: /var/lib/td-agent
+
+{% block fluentd_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+{{ include_footer }}
+
+USER td-agent
diff --git a/docker/fluentd/extend_start.sh b/docker/fluentd/extend_start.sh
new file mode 100644
index 000000000..bcdbed09d
--- /dev/null
+++ b/docker/fluentd/extend_start.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# Give processes executed with the "kolla" group the permission to create files
+# and sub-directories in the /var/log/kolla directory.
+#
+# Also set the setgid permission on the /var/log/kolla directory so that new
+# files and sub-directories in that directory inherit its group id ("kolla").
+if [[ $(stat -c %U:%G /var/log/kolla) != "td-agent:kolla" ]]; then
+ sudo chown td-agent:kolla /var/log/kolla
+fi
+if [[ $(stat -c %a /var/log/kolla) != "2775" ]]; then
+ sudo chmod 2775 /var/log/kolla
+fi
+if [[ $(stat -c %U:%G /var/lib/td-agent) != "td-agent:kolla" ]]; then
+ sudo chown td-agent:kolla /var/lib/td-agent
+fi
diff --git a/docker/fluentd/fluentd_sudoers b/docker/fluentd/fluentd_sudoers
new file mode 100644
index 000000000..0111a26c4
--- /dev/null
+++ b/docker/fluentd/fluentd_sudoers
@@ -0,0 +1,4 @@
+%kolla ALL=(root) NOPASSWD: /bin/chown td-agent\:kolla /var/log/kolla, /usr/bin/chown td-agent\:kolla /var/log/kolla
+%kolla ALL=(root) NOPASSWD: /bin/chown td-agent\:kolla /var/lib/td-agent, /usr/bin/chown td-agent\:kolla /var/lib/td-agent
+%kolla ALL=(root) NOPASSWD: /bin/chmod 2775 /var/log/kolla, /usr/bin/chmod 2775 /var/log/kolla
+%kolla ALL=(root) NOPASSWD: /bin/chmod 2775 /var/lib/td-agent, /usr/bin/chmod 2775 /var/lib/td-agent
diff --git a/docker/fluentd/td.repo b/docker/fluentd/td.repo
new file mode 100644
index 000000000..abecf7e2c
--- /dev/null
+++ b/docker/fluentd/td.repo
@@ -0,0 +1,5 @@
+[treasuredata]
+name=TreasureData
+baseurl=http://packages.treasuredata.com/2/redhat/\$releasever/\$basearch
+gpgcheck=1
+gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent