summary refs log tree commit diff
path: root/nixos/modules/services/monitoring/grafana.nix
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2022-11-08 20:04:23 +0100
committerMaximilian Bosch <maximilian@mbosch.me>2022-11-20 18:21:41 +0100
commit2f1dfb0db379c1bf13785a5c7d94ad31bd0eb46b (patch)
tree42c85477b546dfa9a12e19b0ec6aa9ee7a2a5469 /nixos/modules/services/monitoring/grafana.nix
parent4ec456b7252a8afabff87fc40eab613c138f43d6 (diff)
downloadnixpkgs-2f1dfb0db379c1bf13785a5c7d94ad31bd0eb46b.tar
nixpkgs-2f1dfb0db379c1bf13785a5c7d94ad31bd0eb46b.tar.gz
nixpkgs-2f1dfb0db379c1bf13785a5c7d94ad31bd0eb46b.tar.bz2
nixpkgs-2f1dfb0db379c1bf13785a5c7d94ad31bd0eb46b.tar.lz
nixpkgs-2f1dfb0db379c1bf13785a5c7d94ad31bd0eb46b.tar.xz
nixpkgs-2f1dfb0db379c1bf13785a5c7d94ad31bd0eb46b.tar.zst
nixpkgs-2f1dfb0db379c1bf13785a5c7d94ad31bd0eb46b.zip
nixos/grafana: fix w/o datasources or dashboard provisioning
Diffstat (limited to 'nixos/modules/services/monitoring/grafana.nix')
-rw-r--r--nixos/modules/services/monitoring/grafana.nix17
1 files changed, 14 insertions, 3 deletions
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 69a25731f24..8035abfc004 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -13,9 +13,20 @@ let
   settingsFormatIni = pkgs.formats.ini {};
   configFile = settingsFormatIni.generate "config.ini" cfg.settings;
 
-  datasourceFile = if (cfg.provision.datasources.path == null) then provisioningSettingsFormat.generate "datasource.yaml" cfg.provision.datasources.settings else cfg.provision.datasources.path;
-
-  dashboardFile = if (cfg.provision.dashboards.path == null) then provisioningSettingsFormat.generate "dashboard.yaml" cfg.provision.dashboards.settings else cfg.provision.dashboards.path;
+  mkProvisionCfg = name: attr: provisionCfg:
+    if provisionCfg.path != null
+      then provisionCfg.path
+    else
+      provisioningSettingsFormat.generate "${name}.yaml"
+        (if provisionCfg.settings != null
+          then provisionCfg.settings
+          else {
+            apiVersion = 1;
+            ${attr} = [];
+          });
+
+  datasourceFile = mkProvisionCfg "datasource" "datasources" cfg.provision.datasources;
+  dashboardFile = mkProvisionCfg "dashboard" "providers" cfg.provision.dashboards;
 
   notifierConfiguration = {
     apiVersion = 1;