Grafana
Grafana is installed with the upstream Helm Chart. Running the installation is simple and can be done with our integration script.
Before running the script, you will need to create a secret file with your database username and passwords.
Information about the secretes used
Manual secret generation is only required if you haven't run the create-secrets.sh
script located in /opt/genestack/bin
.
Example secret generation
Custom Values
Before running the deployment script, you must set the custom_host
value grafana-helm-overrides.yaml
to the correct FQDN you wish to use within the deployment.
Installation
The default installation is simple. The grafana-helm-overrides.yaml
file is located at /etc/genestack/helm-configs/grafana/
and overrides can be set there to customize the installation.
Before running installation when integrating with Azure AD, you must create te azure-client-secret
You can base64 encode your client_id
and client_secret
by using the echo and base64 command.
Apply your base64 encoded values to the azure-client-secret.yaml
file and apply it to the grafana
namespace.
azure-client-secret.yaml
Once you have created the secret file, update your grafana-helm-overrides.yaml
file with the Azure AD values.
azure-overrides.yaml
tenant_id: 122333 # TODO: update this value. Can be set in CLI.
extraSecretMounts:
- name: azure-client-secret-mount
secretName: azure-client
defaultMode: 0440
mountPath: /etc/secrets/azure-client
readOnly: true
- name: grafana-db-secret-mount
secretName: grafana-db
defaultMode: 0440
mountPath: /etc/secrets/grafana-db
readOnly: true
grafana.ini:
auth.azuread:
name: Azure AD
enabled: true
allow_sign_up: true
auto_login: false
client_id: $__file{/etc/secrets/azure-client/client_id}
client_secret: $__file{/etc/secrets/azure-client/client_secret}
scopes: openid email profile
auth_url: "https://login.microsoftonline.com/{{ .Values.tenant_id }}/oauth2/v2.0/authorize"
token_url: "https://login.microsoftonline.com/{{ .Values.tenant_id }}/oauth2/v2.0/token"
allowed_organizations: "{{ .Values.tenant_id }}"
role_attribute_strict: false
allow_assign_grafana_admin: false
skip_org_role_sync: false
use_pkce: true
Listeners and Routes
Listeners and Routes should have been configureed when you installed the Gateway API. If so some reason they were not created, please following the install guide here: Gateway API
Deployment
Run the Grafana deployment Script /opt/genestack/bin/install-grafana.sh
Run the Grafana deployment Script /opt/genestack/bin/install-grafana.sh
#!/bin/bash
# shellcheck disable=SC2124,SC2145,SC2294
GLOBAL_OVERRIDES_DIR="/etc/genestack/helm-configs/global_overrides"
SERVICE_CONFIG_DIR="/etc/genestack/helm-configs/grafana"
BASE_OVERRIDES="/opt/genestack/base-helm-configs/grafana/grafana-helm-overrides.yaml"
HELM_CMD="helm upgrade --install grafana grafana/grafana \
--namespace=grafana \
--create-namespace \
--timeout 120m \
--post-renderer /etc/genestack/kustomize/kustomize.sh \
--post-renderer-args grafana/overlay"
HELM_CMD+=" -f ${BASE_OVERRIDES}"
for dir in "$GLOBAL_OVERRIDES_DIR" "$SERVICE_CONFIG_DIR"; do
if compgen -G "${dir}/*.yaml" > /dev/null; then
for yaml_file in "${dir}"/*.yaml; do
HELM_CMD+=" -f ${yaml_file}"
done
fi
done
HELM_CMD+=" $@"
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
echo "Executing Helm command:"
echo "${HELM_CMD}"
eval "${HELM_CMD}"