# Grafana dashboards -- declarative provisioning. # # Rules: # * one .json file per dashboard, named after its UID; # * every JSON carries a STABLE "uid" field (never regenerated): that is what # keeps URLs, cross-links and alerts alive across redeployments; # * `disableNameSuffixHash: true` -> the ConfigMap always keeps the same name, # so `kubectl apply` updates it in place and Grafana reloads WITHOUT # restarting the pod, in about 70s (see dashboard-providers.yaml). # # Adding a dashboard = drop the .json here and add it to `files:` below. apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: observability configMapGenerator: - name: grafana-dashboards files: # >>> dashboards (generated by `make dashboards-sync`) >>> - obs-access-logs.json - obs-application-logs.json - obs-audit-logs.json - obs-classic-models-api.json - obs-keycloak.json - obs-kong-gateways.json - obs-librechat.json - obs-stack-health.json # <<< dashboards <<< generatorOptions: disableNameSuffixHash: true labels: app.kubernetes.io/name: grafana app.kubernetes.io/component: dashboards app.kubernetes.io/part-of: observability