summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker/monasca/monasca-grafana/Dockerfile.j281
-rw-r--r--docker/monasca/monasca-grafana/extend_start.sh8
-rw-r--r--docker/monasca/monasca-grafana/grafana_sudoers1
-rw-r--r--releasenotes/notes/add-monasca-grafana-868f1dd95725a030.yaml6
4 files changed, 96 insertions, 0 deletions
diff --git a/docker/monasca/monasca-grafana/Dockerfile.j2 b/docker/monasca/monasca-grafana/Dockerfile.j2
new file mode 100644
index 000000000..df8bb8c35
--- /dev/null
+++ b/docker/monasca/monasca-grafana/Dockerfile.j2
@@ -0,0 +1,81 @@
+FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+{% block monasca_grafana_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='monasca', homedir='/usr/share/grafana') }}
+
+{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
+ {% set monasca_grafana_build_packages = [
+ 'golang',
+ 'git',
+ 'npm',
+ 'bzip2',
+ 'gcc-c++',
+ 'make',
+ 'ruby',
+ 'ruby-devel',
+ 'fontconfig',
+ 'rpm-build'
+ ] %}
+{% elif base_distro in ['debian', 'ubuntu'] %}
+ {% set monasca_grafana_build_packages = [
+ 'golang',
+ 'git',
+ 'npm',
+ 'bzip2',
+ 'g++',
+ 'make',
+ 'ruby',
+ 'ruby-dev',
+ 'fontconfig',
+ 'rpm'
+ ] %}
+{% endif %}
+
+{{ macros.install_packages(monasca_grafana_build_packages | customizable("packages")) }}
+
+WORKDIR /usr/share/grafana
+
+COPY grafana_sudoers /etc/sudoers.d/kolla_grafana_sudoers
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+
+ENV GO_PATH=/grafana
+ENV monasca_grafana_build_path=${GO_PATH}/src/github.com/grafana/grafana
+ARG monasca_grafana_version=grafana4
+ARG monasca_grafana_url=https://github.com/monasca/grafana/archive/$monasca_grafana_version.tar.gz
+
+{% block monasca_grafana_install %}
+RUN gem install fpm \
+ && curl -sSL -o /tmp/monasca-grafana.tgz ${monasca_grafana_url} \
+ && mkdir -p ${monasca_grafana_build_path} \
+ && tar --strip 1 -xvf /tmp/monasca-grafana.tgz -C ${monasca_grafana_build_path} \
+ && rm -f /tmp/monasca-grafana.tgz \
+ && cd ${monasca_grafana_build_path} \
+ && go run build.go setup \
+ && npm install \
+ && go run build.go build package \
+ && mv ${monasca_grafana_build_path}/dist /grafana_pkgs \
+ && rm -rf /grafana
+
+{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
+ {% set monasca_grafana_packages = ['/grafana_pkgs/grafana*.rpm'] %}
+{% elif base_distro in ['debian', 'ubuntu'] %}
+ {% set monasca_grafana_packages = ['/grafana_pkgs/grafana*.deb'] %}
+{% endif %}
+
+{{ macros.install_packages(monasca_grafana_packages | customizable("packages")) }}
+
+{% endblock %}
+
+RUN grafana-cli plugins install monasca-datasource \
+ && chmod 750 /etc/sudoers.d \
+ && chmod 440 /etc/sudoers.d/kolla_grafana_sudoers \
+ && chmod 755 /usr/local/bin/kolla_extend_start
+
+{% block monasca_grafana_footer %}{% endblock %}
+{% block footer %}{% endblock %}
+
+USER monasca
diff --git a/docker/monasca/monasca-grafana/extend_start.sh b/docker/monasca/monasca-grafana/extend_start.sh
new file mode 100644
index 000000000..1f6f8ef60
--- /dev/null
+++ b/docker/monasca/monasca-grafana/extend_start.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+if [[ ! -d "/var/log/kolla/monasca" ]]; then
+ mkdir -p /var/log/kolla/monasca
+fi
+if [[ $(stat -c %a /var/log/kolla/monasca) != "755" ]]; then
+ chmod 755 /var/log/kolla/monasca
+fi
diff --git a/docker/monasca/monasca-grafana/grafana_sudoers b/docker/monasca/monasca-grafana/grafana_sudoers
new file mode 100644
index 000000000..a8f01423b
--- /dev/null
+++ b/docker/monasca/monasca-grafana/grafana_sudoers
@@ -0,0 +1 @@
+%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R monasca\: /var/lib/grafana/, /bin/chown -R monasca\: /var/lib/grafana/
diff --git a/releasenotes/notes/add-monasca-grafana-868f1dd95725a030.yaml b/releasenotes/notes/add-monasca-grafana-868f1dd95725a030.yaml
new file mode 100644
index 000000000..1ec5d6833
--- /dev/null
+++ b/releasenotes/notes/add-monasca-grafana-868f1dd95725a030.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ Add the Monasca fork of Grafana (v4.0.1). The Monasca fork of Grafana
+ adds Keystone integration, allowing Grafana users to log in with their
+ OpenStack credentials and see Metrics from their OpenStack project.