Files
truecharts/charts/stable/grafana/values.yaml
T

520 lines
16 KiB
YAML

# yaml-language-server: $schema=./values.schema.json
image:
repository: docker.io/grafana/grafana
pullPolicy: IfNotPresent
tag: 13.1.0@sha256:121a7a9ece6dc10b969f1f96eed64b4f07dfac0d0b8abc070f7cb83bbde86f63
sidecarImage:
repository: ghcr.io/kiwigrid/k8s-sidecar
tag: 2.8.1@sha256:abb55b2165c60e8f97e473862c7a3123df6f67d44f592949577c29b8fb2df9d6
# Define extra dashboards to be provisioned
# Supports 2 formats:
# - Importing directly from `grafana.com` via Grafana dashboard ID & revision
# - Importing from any URL that returns a JSON file
#
# Additionally, each configured dashboard can be set to be:
# - base64 decoded
# - have its datasources replaced
#
# See values below for more examples
dashboards:
grafana:
ceph-cluster:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
url: https://raw.githubusercontent.com/rook/rook/refs/tags/v1.18.7/deploy/examples/monitoring/grafana/Ceph%20Cluster%20Dashboard.json
ceph-osd-single:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
url: https://github.com/rook/rook/raw/refs/tags/v1.18.7/deploy/examples/monitoring/grafana/Ceph%20OSD%20Single%20Dashboard.json
ceph-pools:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
url: https://github.com/rook/rook/raw/refs/tags/v1.18.7/deploy/examples/monitoring/grafana/Ceph%20Pools%20Dashboard.json
cert-manager:
enabled: true
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
marketplace:
# renovate: depName="Cert-manager-Kubernetes"
id: 20842
revision: 3
cnpg:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
marketplace:
# renovate: depName="CloudNativePG"
id: 20417
revision: 4
flux-cluster:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
url: https://github.com/fluxcd/flux2-monitoring-example/raw/82c37257787bba13a40b17bed9bd8191ee7aa049/monitoring/configs/dashboards/cluster.json
flux-control-plane:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
url: https://github.com/fluxcd/flux2-monitoring-example/raw/82c37257787bba13a40b17bed9bd8191ee7aa049/monitoring/configs/dashboards/control-plane.json
metallb:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
marketplace:
# renovate: depName="Metallb"
id: 20162
revision: 6
nginx:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
url: https://github.com/kubernetes/ingress-nginx/raw/refs/tags/ingress-nginx-3.15.2/deploy/grafana/dashboards/nginx.json
node-feature-discovery:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
url: https://github.com/kubernetes-sigs/node-feature-discovery/raw/refs/tags/v0.18.3/examples/grafana-dashboard.json
prometheus-smartctl-exporter:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
marketplace:
# renovate: depName="SMARTctl Exporter Dashboard"
id: 22604
revision: 2
traefik:
enabled: false
failOnError: false
b64content: false
datasource:
- name: "${DS_PROMETHEUS}"
value: Prometheus
marketplace:
# renovate: depName="Traefik Official Standalone Dashboard"
id: 17346
revision: 9
securityContext:
container:
readOnlyRootFilesystem: false
service:
main:
ports:
main:
protocol: http
targetPort: 3000
port: 3000
workload:
main:
replicas: 1
strategy: Recreate
podSpec:
initContainers:
download-dashboards:
enabled: true
type: init
imageSelector: ubuntuImage
command: /download-dashboards.sh
containers:
main:
env:
GF_SECURITY_ADMIN_USER: "admin"
GF_SECURITY_ADMIN_PASSWORD: "testpassword"
GF_INSTALL_PLUGINS: ""
GF_AUTH_LDAP_ENABLED: "false"
GF_AUTH_LDAP_ALLOW_SIGN_UP: "false"
GF_SERVER_HTTP_PORT: 3000
GF_DATABASE_TYPE: postgres
GF_DATABASE_NAME: "{{ .Values.cnpg.main.user }}"
GF_DATABASE_USER: "{{ .Values.cnpg.main.database }}"
GF_DATABASE_SSL_MODE: disable
GF_DATABASE_HOST:
secretKeyRef:
name: cnpg-main-urls
key: host
GF_DATABASE_PASSWORD:
secretKeyRef:
name: cnpg-main-user
key: password
probes:
liveness:
path: "/api/health"
readiness:
path: "/api/health"
startup:
path: "/api/health"
dashboards:
enabled: true
imageSelector: sidecarImage
env:
IGNORE_ALREADY_PROCESSED: false
METHOD: WATCH
LABEL: grafana_dashboard
LABEL_VALUE: "1"
LOG_LEVEL: info
FOLDER: /tmp/dashboards
RESOURCE: both
NAMESPACE: "ALL"
UNIQUE_FILENAMES: false
# NAMESPACE: null
# FOLDER_ANNOTATION: null
# script: null
# WATCH_SERVER_TIMEOUT: 3600
# WATCH_CLIENT_TIMEOUT: 3600
SKIP_TLS_VERIFY: false
REQ_USERNAME: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_USER }}"
REQ_PASSWORD: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_PASSWORD }}"
REQ_URL: "http://localhost:3000/api/admin/provisioning/dashboards/reload"
REQ_METHOD: POST
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
cpu: 200m
memory: 1536Mi
datasources:
enabled: true
imageSelector: sidecarImage
env:
IGNORE_ALREADY_PROCESSED: false
METHOD: WATCH
LABEL: grafana_datasource
LABEL_VALUE: "1"
LOG_LEVEL: info
FOLDER: /etc/grafana/provisioning/datasources
RESOURCE: both
NAMESPACE: "ALL"
UNIQUE_FILENAMES: false
# NAMESPACE: null
# FOLDER_ANNOTATION: null
# script: null
# WATCH_SERVER_TIMEOUT: 3600
# WATCH_CLIENT_TIMEOUT: 3600
SKIP_TLS_VERIFY: false
REQ_USERNAME: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_USER }}"
REQ_PASSWORD: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_PASSWORD }}"
REQ_URL: "http://localhost:3000/api/admin/provisioning/datasources/reload"
REQ_METHOD: POST
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
cpu: 200m
memory: 1536Mi
alerts:
enabled: true
imageSelector: sidecarImage
env:
IGNORE_ALREADY_PROCESSED: false
METHOD: WATCH
LABEL: grafana_alerts
LABEL_VALUE: "1"
LOG_LEVEL: info
FOLDER: /etc/grafana/provisioning/alerts
RESOURCE: both
NAMESPACE: "ALL"
UNIQUE_FILENAMES: false
# NAMESPACE: null
# FOLDER_ANNOTATION: null
# script: null
# WATCH_SERVER_TIMEOUT: 3600
# WATCH_CLIENT_TIMEOUT: 3600
SKIP_TLS_VERIFY: false
REQ_USERNAME: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_USER }}"
REQ_PASSWORD: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_PASSWORD }}"
REQ_URL: "http://localhost:3000/api/admin/provisioning/alerts/reload"
REQ_METHOD: POST
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
cpu: 200m
memory: 1536Mi
plugins:
enabled: true
imageSelector: sidecarImage
env:
IGNORE_ALREADY_PROCESSED: false
METHOD: WATCH
LABEL: grafana_plugins
LABEL_VALUE: "1"
LOG_LEVEL: info
FOLDER: /etc/grafana/provisioning/plugins
RESOURCE: both
NAMESPACE: "ALL"
UNIQUE_FILENAMES: false
# NAMESPACE: null
# FOLDER_ANNOTATION: null
# script: null
# WATCH_SERVER_TIMEOUT: 3600
# WATCH_CLIENT_TIMEOUT: 3600
SKIP_TLS_VERIFY: false
REQ_USERNAME: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_USER }}"
REQ_PASSWORD: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_PASSWORD }}"
REQ_URL: "http://localhost:3000/api/admin/provisioning/plugins/reload"
REQ_METHOD: POST
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
cpu: 200m
memory: 1536Mi
notifiers:
enabled: true
imageSelector: sidecarImage
env:
IGNORE_ALREADY_PROCESSED: false
METHOD: WATCH
LABEL: grafana_notifiers
LABEL_VALUE: "1"
LOG_LEVEL: info
FOLDER: /etc/grafana/provisioning/notifiers
RESOURCE: both
NAMESPACE: "ALL"
UNIQUE_FILENAMES: false
# NAMESPACE: null
# FOLDER_ANNOTATION: null
# script: null
# WATCH_SERVER_TIMEOUT: 3600
# WATCH_CLIENT_TIMEOUT: 3600
SKIP_TLS_VERIFY: false
REQ_USERNAME: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_USER }}"
REQ_PASSWORD: "{{ .Values.workload.main.podSpec.containers.main.env.GF_SECURITY_ADMIN_PASSWORD }}"
REQ_URL: "http://localhost:3000/api/admin/provisioning/notifiers/reload"
REQ_METHOD: POST
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
cpu: 200m
memory: 1536Mi
configmap:
dashboard-provider:
enabled: true
data:
provider.yaml: |-
apiVersion: 1
providers:
- name: sidecarProvider
orgId: 1
folder: ''
type: file
disableDeletion: false
allowUiUpdates: false
updateIntervalSeconds: 30
options:
foldersFromFilesStructure: true
path: /tmp/dashboards
config:
enabled: true
data:
grafana.ini: |-
paths:
data: /var/lib/grafana/
logs: /var/log/grafana
plugins: /var/lib/grafana/plugins
provisioning: /etc/grafana/provisioning
analytics:
check_for_updates: true
log:
mode: console
grafana_net:
url: https://grafana.net
server:
domain: "{{ if (and .Values.ingress.main.enabled .Values.ingress.main.hosts) }}{{ .Values.ingress.main.hosts | first }}{{ else }}''{{ end }}"
ldap.toml: |-
# nope
persistence:
config:
enabled: true
type: configmap
objectName: config
mountPath: /etc/grafana/grafana.ini
subPath: grafana.ini
ldap:
enabled: true
type: configmap
objectName: config
mountPath: /etc/grafana/ldap.toml
subPath: ldap.toml
data:
enabled: true
mountPath: "/var/lib/grafana"
grafana-tmp:
enabled: true
type: emptyDir
mountPath: /app/tmp
targetSelectAll: true
sc-dashboard-volume:
enabled: true
type: emptyDir
mountPath: /tmp/dashboards
targetSelectAll: true
sc-dashboard-config:
enabled: true
type: configmap
objectName: dashboard-provider
mountPath: /etc/grafana/provisioning/dashboards/sc-dashboardproviders.yaml
subPath: provider.yaml
download-dashboards-config:
enabled: true
type: configmap
objectName: download-dashboards
subPath: download-dashboards.sh
mountPath: /download-dashboards.sh
defaultMode: "0555"
readOnly: true
targetSelector:
main:
download-dashboards: {}
sc-datasource-volume:
enabled: true
type: emptyDir
mountPath: /etc/grafana/provisioning/datasources
targetSelectAll: true
sc-alerts-volume:
enabled: true
type: emptyDir
mountPath: /etc/grafana/provisioning/alerts
targetSelectAll: true
sc-plugins-volume:
enabled: true
type: emptyDir
mountPath: /etc/grafana/provisioning/plugins
targetSelectAll: true
sc-notifiers-volume:
enabled: true
type: emptyDir
mountPath: /etc/grafana/provisioning/notifiers
targetSelectAll: true
metrics:
main:
# -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
# @default -- See values.yaml
enabled: true
type: "servicemonitor"
endpoints:
- port: main
path: /metrics
# -- Enable and configure Prometheus Rules for the chart under this key.
# @default -- See values.yaml
prometheusRule:
enabled: false
labels: {}
# -- Configure additionial rules for the chart under this key.
# @default -- See prometheusrules.yaml
rules: []
# - alert: UnifiPollerAbsent
# annotations:
# description: Unifi Poller has disappeared from Prometheus service discovery.
# summary: Unifi Poller is down.
# expr: |
# absent(up{job=~".*unifi-poller.*"} == 1)
# for: 5m
# labels:
# severity: critical
# -- Whether Role Based Access Control objects like roles and rolebindings should be created
rbac:
main:
enabled: true
primary: true
clusterWide: true
rules:
- apiGroups: [""]
resources: ["configmaps", "secrets"]
verbs: ["get", "watch", "list"]
serviceAccount:
main:
enabled: true
primary: true
podOptions:
automountServiceAccountToken: true
cnpg:
main:
enabled: true
user: grafana
database: grafana