docker: add barometer/grafana grafana 99/50299/2
authorGordon Kelly <gordon.kelly@intel.com>
Sat, 16 Dec 2017 12:11:40 +0000 (12:11 +0000)
committerMaryam Tahhan <maryam.tahhan@intel.com>
Wed, 10 Jan 2018 15:14:27 +0000 (15:14 +0000)
Change-Id: I6352b908ee1fc0819e19f786d73897fd6db841e6
Signed-off-by: gordonkelly <gordon.kelly@intel.com>
docker/grafana/Dockerfile [new file with mode: 0644]
docker/grafana/configure_grafana.sh [new file with mode: 0755]
docker/grafana/run.sh [new file with mode: 0644]

diff --git a/docker/grafana/Dockerfile b/docker/grafana/Dockerfile
new file mode 100644 (file)
index 0000000..e459531
--- /dev/null
@@ -0,0 +1,5 @@
+FROM grafana/grafana:latest
+
+COPY ./configure_grafana.sh /
+COPY ./run.sh /
+RUN chmod 755 run.sh configure_grafana.sh
diff --git a/docker/grafana/configure_grafana.sh b/docker/grafana/configure_grafana.sh
new file mode 100755 (executable)
index 0000000..0b18529
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright 2017 OPNFV
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+sleep 20 #allow 20 seconds for grafana complete initilization 
+
+curl -u admin:admin -X POST -H 'content-type: application/json'\
+      http://127.0.0.1:3000/api/datasources -d \
+      '{"name":"collectd","type":"influxdb","url":"http://localhost:8086","access":"proxy","isDefault":true,"database":"collectd","user":"admin","password":"admin","basicAuth":false}'
+
+FILES=/var/lib/grafana/dashboards/*.json
+for f in $FILES
+do
+  curl -u admin:admin -X POST -H 'content-type: application/json' \
+      http://127.0.0.1:3000/api/dashboards/db -d @$f ; 
+done
diff --git a/docker/grafana/run.sh b/docker/grafana/run.sh
new file mode 100644 (file)
index 0000000..5b9a819
--- /dev/null
@@ -0,0 +1,70 @@
+#!/bin/bash -e
+# Copyright 2014-2016 Torkel Ã–degaard, Raintank Inc.
+# Modifications Copyright 2017 OPNFV
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+: "${GF_PATHS_CONFIG:=/etc/grafana/grafana.ini}"
+: "${GF_PATHS_DATA:=/var/lib/grafana}"
+: "${GF_PATHS_LOGS:=/var/log/grafana}"
+: "${GF_PATHS_PLUGINS:=/var/lib/grafana/plugins}"
+
+chown -R grafana:grafana "$GF_PATHS_DATA" "$GF_PATHS_LOGS"
+chown -R grafana:grafana /etc/grafana
+
+
+if [ ! -z ${GF_AWS_PROFILES+x} ]; then
+    mkdir -p ~grafana/.aws/
+    touch ~grafana/.aws/credentials
+
+    for profile in ${GF_AWS_PROFILES}; do
+        access_key_varname="GF_AWS_${profile}_ACCESS_KEY_ID"
+        secret_key_varname="GF_AWS_${profile}_SECRET_ACCESS_KEY"
+        region_varname="GF_AWS_${profile}_REGION"
+
+        if [ ! -z "${!access_key_varname}" -a ! -z "${!secret_key_varname}" ]; then
+            echo "[${profile}]" >> ~grafana/.aws/credentials
+            echo "aws_access_key_id = ${!access_key_varname}" >> ~grafana/.aws/credentials
+            echo "aws_secret_access_key = ${!secret_key_varname}" >> ~grafana/.aws/credentials
+            if [ ! -z "${!region_varname}" ]; then
+                echo "region = ${!region_varname}" >> ~grafana/.aws/credentials
+            fi
+        fi
+    done
+
+    chown grafana:grafana -R ~grafana/.aws
+    chmod 600 ~grafana/.aws/credentials
+fi
+
+if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then
+  OLDIFS=$IFS
+  IFS=','
+  for plugin in ${GF_INSTALL_PLUGINS}; do
+    IFS=$OLDIFS
+    gosu grafana grafana-cli --pluginsDir "${GF_PATHS_PLUGINS}" plugins install ${plugin}
+  done
+fi
+
+/bin/bash ./configure_grafana.sh &
+
+exec gosu grafana /usr/sbin/grafana-server      \
+  --homepath=/usr/share/grafana                 \
+  --config="$GF_PATHS_CONFIG"                   \
+  cfg:default.log.mode="console"                \
+  cfg:default.paths.data="$GF_PATHS_DATA"       \
+  cfg:default.paths.logs="$GF_PATHS_LOGS"       \
+  cfg:default.paths.plugins="$GF_PATHS_PLUGINS" \
+  "$@"
+
+
+