From 6417595b9f822c44a86bf1ac905f9ac19344000d Mon Sep 17 00:00:00 2001 From: Mathias Ewald Date: Mon, 25 Jul 2016 08:51:58 +0000 Subject: [PATCH] Added grafana container Added grafana repository to base image Co-Authored-By: zhubingbing Installed grafana from repository Change-Id: Ib99195ec4522f185f6fd4cebf10e305bb58f69c4 Partially-Implements: Blueprint performance-monitoring --- docker/base/Dockerfile.j2 | 9 +++++++-- docker/base/grafana.repo | 7 +++++++ docker/base/sources.list.debian | 3 +++ docker/base/sources.list.ubuntu | 3 +++ docker/grafana/Dockerfile.j2 | 22 ++++++++++++++++++++++ docker/grafana/extend_start.sh | 9 +++++++++ docker/grafana/grafana_sudoers | 2 ++ 7 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 docker/base/grafana.repo create mode 100644 docker/grafana/Dockerfile.j2 create mode 100644 docker/grafana/extend_start.sh create mode 100644 docker/grafana/grafana_sudoers diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index ed2a4c5e0c..4d5f4dc1be 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -37,7 +37,8 @@ RUN if [ $(awk '{match($0, /[0-9]+/,version)}END{print version[0]}' /etc/system- 'elasticsearch.repo', 'kibana.yum.repo', 'MariaDB.repo', - 'influxdb.repo' + 'influxdb.repo', + 'grafana.repo' ] %} {% for repo_file in base_yum_repo_files | customizable('yum_repo_files') %} COPY {{ repo_file }} /etc/yum.repos.d/{{ repo_file }} @@ -51,7 +52,9 @@ COPY {{ repo_file }} /etc/yum.repos.d/{{ repo_file }} 'http://yum.mariadb.org/RPM-GPG-KEY-MariaDB', '/etc/pki/rpm-gpg/RPM-GPG-KEY-Percona ', 'https://packages.elastic.co/GPG-KEY-elasticsearch', - 'https://repos.influxdata.com/influxdb.key' + 'https://repos.influxdata.com/influxdb.key', + 'https://packagecloud.io/gpg.key', + 'https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana' ] %} RUN true {% for key in base_yum_repo_keys | customizable('yum_repo_keys') %}&& rpm --import {{ key }} {% endfor %} @@ -231,6 +234,7 @@ COPY apt_preferences.{{ base_distro }} /etc/apt/preferences '46095ACC8548582C1A2699A9D27D666CD88E42B4', '58118E89F3A912897C070ADBF76221572C52609D', '05CE15085FC09D18E99EFB22684A14CF2582E0C5', + '418A7F2FB0E1E6E7EABF6FE8C2E73424D59097AB', ] %} {% elif base_distro == 'debian' %} {% set base_apt_keys = [ @@ -239,6 +243,7 @@ COPY apt_preferences.{{ base_distro }} /etc/apt/preferences '0xcbcb082a1bb943db', 'D27D666CD88E42B4', '05CE15085FC09D18E99EFB22684A14CF2582E0C5', + '418A7F2FB0E1E6E7EABF6FE8C2E73424D59097AB', ] %} {% set base_apt_packages = base_apt_packages + ['sudo',] diff --git a/docker/base/grafana.repo b/docker/base/grafana.repo new file mode 100644 index 0000000000..dc8d30b445 --- /dev/null +++ b/docker/base/grafana.repo @@ -0,0 +1,7 @@ +[grafana] +name=grafana +baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch +repo_gpgcheck=1 +enabled=1 +gpgcheck=1 +gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana diff --git a/docker/base/sources.list.debian b/docker/base/sources.list.debian index fc14f672ff..0827055ed1 100644 --- a/docker/base/sources.list.debian +++ b/docker/base/sources.list.debian @@ -27,3 +27,6 @@ deb http://apt.dockerproject.org/repo debian-jessie main # InfluxDB repo deb https://repos.influxdata.com/debian jessie stable + +# Grafana repo +deb https://packagecloud.io/grafana/stable/debian/ jessie main diff --git a/docker/base/sources.list.ubuntu b/docker/base/sources.list.ubuntu index 510293712f..15716b7d58 100644 --- a/docker/base/sources.list.ubuntu +++ b/docker/base/sources.list.ubuntu @@ -30,3 +30,6 @@ deb http://apt.dockerproject.org/repo ubuntu-xenial main # InfluxDB repo deb https://repos.influxdata.com/ubuntu xenial stable + +# Grafana repo +deb https://packagecloud.io/grafana/stable/debian/ jessie main diff --git a/docker/grafana/Dockerfile.j2 b/docker/grafana/Dockerfile.j2 new file mode 100644 index 0000000000..e2be9d6c2c --- /dev/null +++ b/docker/grafana/Dockerfile.j2 @@ -0,0 +1,22 @@ +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} +MAINTAINER {{ maintainer }} + +{% block grafana_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{% set grafana_packages = ['grafana'] %} +{{ macros.install_packages(grafana_packages | customizable("packages")) }} + +RUN usermod -a -G kolla grafana + +WORKDIR /usr/share/grafana + +COPY grafana_sudoers /etc/sudoers.d/kolla_grafana_sudoers +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +{% block grafana_footer %}{% endblock %} +{% block footer %}{% endblock %} +{{ include_footer }} + +USER grafana diff --git a/docker/grafana/extend_start.sh b/docker/grafana/extend_start.sh new file mode 100644 index 0000000000..22f57a6566 --- /dev/null +++ b/docker/grafana/extend_start.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +if [[ ! -d "/var/log/kolla/grafana" ]]; then + mkdir -p /var/log/kolla/grafana +fi +if [[ $(stat -c %a /var/log/kolla/grafana) != "755" ]]; then + chmod 755 /var/log/kolla/grafana +fi + diff --git a/docker/grafana/grafana_sudoers b/docker/grafana/grafana_sudoers new file mode 100644 index 0000000000..98af2f54eb --- /dev/null +++ b/docker/grafana/grafana_sudoers @@ -0,0 +1,2 @@ + +%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R grafana\: /var/lib/grafana/, /bin/chown -R grafana\: /var/lib/grafana/