From e5ca547f373bdae7207236190422fd18840dd711 Mon Sep 17 00:00:00 2001
From: Mathias Ewald <mewald@evoila.de>
Date: Sat, 23 Jul 2016 17:29:27 +0000
Subject: [PATCH] Added telegraf container

Extended base container to include influxdb repositories

Added telegraf container with package from influxdb repo

Change-Id: I6ccf952d7b42eabe8ff7bdbd6471e395db86aa02
Partially-Implements: Blueprint performance-monitoring
---
 docker/base/Dockerfile.j2        |  8 +++++++-
 docker/base/influxdb.yum.repo    |  6 ++++++
 docker/base/sources.list.debian  |  3 +++
 docker/base/sources.list.ubuntu  |  3 +++
 docker/telegraf/Dockerfile.j2    | 17 +++++++++++++++++
 docker/telegraf/telegraf_sudoers |  1 +
 6 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 docker/base/influxdb.yum.repo
 create mode 100644 docker/telegraf/Dockerfile.j2
 create mode 100644 docker/telegraf/telegraf_sudoers

diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index 8e7e600efe..1503d5039d 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -40,11 +40,15 @@ COPY kibana.yum.repo /etc/yum.repos.d/kibana.yum.repo
 # Turns on MariaDB repos throughout the RPM build
 COPY mariadb.yum.repo /etc/yum.repos.d/MariaDB.repo
 
+# Turns on InfluxDB repos throughout the RPM build
+COPY influxdb.yum.repo /etc/yum.repos.d/influxdb.repo
+
 RUN yum -y install \
         http://repo.percona.com/release/7/RPMS/x86_64/percona-release-0.1-3.noarch.rpm \
     && rpm --import http://yum.mariadb.org/RPM-GPG-KEY-MariaDB \
     && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona \
-    && rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
+    && rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch \
+    && rpm --import https://repos.influxdata.com/influxdb.key
 
     {% if install_metatype in ['rdo', 'mixed'] %}
 
@@ -209,6 +213,7 @@ COPY apt_preferences.{{ base_distro }} /etc/apt/preferences
       '08B73419AC32B4E966C1A330E84AC2C0460F3994',
       '46095ACC8548582C1A2699A9D27D666CD88E42B4',
       '58118E89F3A912897C070ADBF76221572C52609D',
+      '05CE15085FC09D18E99EFB22684A14CF2582E0C5',
     ] %}
 {% elif base_distro == 'debian' %}
     {% set base_apt_keys = [
@@ -216,6 +221,7 @@ COPY apt_preferences.{{ base_distro }} /etc/apt/preferences
       '58118E89F3A912897C070ADBF76221572C52609D',
       '0xcbcb082a1bb943db',
       'D27D666CD88E42B4',
+      '05CE15085FC09D18E99EFB22684A14CF2582E0C5',
     ] %}
     {% set base_apt_packages = base_apt_packages +
       ['sudo',]
diff --git a/docker/base/influxdb.yum.repo b/docker/base/influxdb.yum.repo
new file mode 100644
index 0000000000..85e4daebfb
--- /dev/null
+++ b/docker/base/influxdb.yum.repo
@@ -0,0 +1,6 @@
+[influxdb]
+name = InfluxDB Repository - RHEL $releasever
+baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
+enabled = 1
+gpgcheck = 1
+gpgkey = https://repos.influxdata.com/influxdb.key
diff --git a/docker/base/sources.list.debian b/docker/base/sources.list.debian
index d247dc434c..edcf5214a7 100644
--- a/docker/base/sources.list.debian
+++ b/docker/base/sources.list.debian
@@ -24,3 +24,6 @@ deb http://packages.elastic.co/kibana/4.4/debian stable main
 
 # docker
 deb http://apt.dockerproject.org/repo debian-jessie main
+
+# InfluxDB repo
+deb https://repos.influxdata.com/debian jessie stable
diff --git a/docker/base/sources.list.ubuntu b/docker/base/sources.list.ubuntu
index c55609abaa..4cabfa07ef 100644
--- a/docker/base/sources.list.ubuntu
+++ b/docker/base/sources.list.ubuntu
@@ -27,3 +27,6 @@ deb http://packages.elastic.co/kibana/4.4/debian stable main
 
 # Docker repo
 deb http://apt.dockerproject.org/repo ubuntu-trusty main
+
+# InfluxDB repo
+deb https://repos.influxdata.com/ubuntu trusty stable
diff --git a/docker/telegraf/Dockerfile.j2 b/docker/telegraf/Dockerfile.j2
new file mode 100644
index 0000000000..d93a997e2e
--- /dev/null
+++ b/docker/telegraf/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+MAINTAINER {{ maintainer }}
+{% import "macros.j2" as macros with context %}
+
+{% set telegraf_packages = ['telegraf'] %}
+RUN {{ macros.install_packages(telegraf_packages | customizable("packages")) }}
+
+COPY telegraf_sudoers /etc/sudoers.d/kolla_telegraf_sudoers
+RUN chmod 750 /etc/sudoers.d \
+    && chmod 440 /etc/sudoers.d/kolla_telegraf_sudoers \
+    && usermod -a -G kolla telegraf
+
+{% block telegraf_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+{{ include_footer }}
+
+USER telegraf
diff --git a/docker/telegraf/telegraf_sudoers b/docker/telegraf/telegraf_sudoers
new file mode 100644
index 0000000000..d6e1e092f7
--- /dev/null
+++ b/docker/telegraf/telegraf_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R telegraf\: /var/lib/telegraf, /bin/chown -R telegraf\: /var/lib/telegraf
-- 
GitLab