From 0889641257ded6438178b53f4b98ba9e9f11368d Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Mon, 12 Jun 2023 16:27:43 +0300 Subject: [PATCH] NAS-122388 / 23.10 / Adds `grafana` to `community` apps (#1252) * Adds `grafana` to `community` apps * test different user too * md format * update rtags * update readmes * use rooturl for portal only if defined --- library/ix-dev/community/grafana/Chart.lock | 6 + library/ix-dev/community/grafana/Chart.yaml | 28 ++ library/ix-dev/community/grafana/README.md | 17 ++ .../ix-dev/community/grafana/app-readme.md | 17 ++ .../community/grafana/charts/common-1.0.8.tgz | Bin 0 -> 55451 bytes .../grafana/ci/basic-plugin-values.yaml | 16 ++ .../community/grafana/ci/basic-values.yaml | 8 + .../grafana/ci/https-plugins-values.yaml | 106 ++++++++ .../community/grafana/ci/https-values.yaml | 94 +++++++ library/ix-dev/community/grafana/item.yaml | 11 + .../ix-dev/community/grafana/metadata.yaml | 8 + .../ix-dev/community/grafana/questions.yaml | 254 ++++++++++++++++++ .../community/grafana/templates/NOTES.txt | 1 + .../grafana/templates/_configuration.tpl | 20 ++ .../community/grafana/templates/_grafana.tpl | 124 +++++++++ .../community/grafana/templates/_portal.tpl | 22 ++ .../community/grafana/templates/common.yaml | 10 + .../community/grafana/upgrade_info.json | 1 + .../ix-dev/community/grafana/upgrade_strategy | 31 +++ library/ix-dev/community/grafana/values.yaml | 35 +++ 20 files changed, 809 insertions(+) create mode 100644 library/ix-dev/community/grafana/Chart.lock create mode 100644 library/ix-dev/community/grafana/Chart.yaml create mode 100644 library/ix-dev/community/grafana/README.md create mode 100644 library/ix-dev/community/grafana/app-readme.md create mode 100644 library/ix-dev/community/grafana/charts/common-1.0.8.tgz create mode 100644 library/ix-dev/community/grafana/ci/basic-plugin-values.yaml create mode 100644 library/ix-dev/community/grafana/ci/basic-values.yaml create mode 100644 library/ix-dev/community/grafana/ci/https-plugins-values.yaml create mode 100644 library/ix-dev/community/grafana/ci/https-values.yaml create mode 100644 library/ix-dev/community/grafana/item.yaml create mode 100644 library/ix-dev/community/grafana/metadata.yaml create mode 100644 library/ix-dev/community/grafana/questions.yaml create mode 100644 library/ix-dev/community/grafana/templates/NOTES.txt create mode 100644 library/ix-dev/community/grafana/templates/_configuration.tpl create mode 100644 library/ix-dev/community/grafana/templates/_grafana.tpl create mode 100644 library/ix-dev/community/grafana/templates/_portal.tpl create mode 100644 library/ix-dev/community/grafana/templates/common.yaml create mode 100644 library/ix-dev/community/grafana/upgrade_info.json create mode 100755 library/ix-dev/community/grafana/upgrade_strategy create mode 100644 library/ix-dev/community/grafana/values.yaml diff --git a/library/ix-dev/community/grafana/Chart.lock b/library/ix-dev/community/grafana/Chart.lock new file mode 100644 index 0000000000..18b7609c37 --- /dev/null +++ b/library/ix-dev/community/grafana/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.0.8 +digest: sha256:254efaa1285f634b7a80b7baadeadbd20a680f7fee49d1d9d3c4618aa0d657ad +generated: "2023-06-08T20:43:17.286126829+03:00" diff --git a/library/ix-dev/community/grafana/Chart.yaml b/library/ix-dev/community/grafana/Chart.yaml new file mode 100644 index 0000000000..57d6caf56f --- /dev/null +++ b/library/ix-dev/community/grafana/Chart.yaml @@ -0,0 +1,28 @@ +name: grafana +description: Grafana is the open source analytics & monitoring solution for every database. +annotations: + title: Grafana +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: '9.5.3' +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ + email: dev@ixsystems.com +dependencies: + - name: common + repository: file://../../../common + version: 1.0.8 +home: https://grafana.com +icon: https://www.gravatar.com/avatar/31cea69afa424609b2d83621b4d47f1d?s=120&r=g&d=404 +sources: + - https://hub.docker.com/r/grafana/grafana + - https://github.com/truenas/charts/tree/master/community/grafana + - https://github.com/grafana +keywords: + - dashboard + - monitoring + - analytics + - metrics diff --git a/library/ix-dev/community/grafana/README.md b/library/ix-dev/community/grafana/README.md new file mode 100644 index 0000000000..78663222bd --- /dev/null +++ b/library/ix-dev/community/grafana/README.md @@ -0,0 +1,17 @@ +# Grafana + +[Grafana](https://grafana.com/) is the open source analytics & monitoring solution for every database. + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Grafana` directories. +> Afterward, the `Grafana` container will run as a **non**-root user (Default: `568`). +> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user. + +Additional configuration can be made by adding additional environment variables +Here is the available [configuration documentation](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/) + +Use the following syntax: +`GF__` + +Example: +`GF_SMTP_ENABLED` diff --git a/library/ix-dev/community/grafana/app-readme.md b/library/ix-dev/community/grafana/app-readme.md new file mode 100644 index 0000000000..78663222bd --- /dev/null +++ b/library/ix-dev/community/grafana/app-readme.md @@ -0,0 +1,17 @@ +# Grafana + +[Grafana](https://grafana.com/) is the open source analytics & monitoring solution for every database. + +> When application is installed, a container will be launched with **root** privileges. +> This is required in order to apply the correct permissions to the `Grafana` directories. +> Afterward, the `Grafana` container will run as a **non**-root user (Default: `568`). +> All mounted storage(s) will be `chown`ed only if the parent directory does not match the configured user. + +Additional configuration can be made by adding additional environment variables +Here is the available [configuration documentation](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/) + +Use the following syntax: +`GF__` + +Example: +`GF_SMTP_ENABLED` diff --git a/library/ix-dev/community/grafana/charts/common-1.0.8.tgz b/library/ix-dev/community/grafana/charts/common-1.0.8.tgz new file mode 100644 index 0000000000000000000000000000000000000000..560796ace63de0ba10ab1e8044b78eaa427408d9 GIT binary patch literal 55451 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