summary refs log tree commit diff
path: root/nixos/tests/prometheus-exporters.nix
diff options
context:
space:
mode:
authorMartin Weinelt <hexa@darmstadt.ccc.de>2021-05-12 21:49:47 +0200
committerMartin Weinelt <hexa@darmstadt.ccc.de>2021-05-14 14:09:19 +0200
commitdd7e1834ca455d9843d2b54f425ad1243322068f (patch)
treeeaa4c8585948f4dccc9593e71610e498dd653f70 /nixos/tests/prometheus-exporters.nix
parentbc4a80979bbf71aaae67682c91b41e300b919b66 (diff)
downloadnixpkgs-dd7e1834ca455d9843d2b54f425ad1243322068f.tar
nixpkgs-dd7e1834ca455d9843d2b54f425ad1243322068f.tar.gz
nixpkgs-dd7e1834ca455d9843d2b54f425ad1243322068f.tar.bz2
nixpkgs-dd7e1834ca455d9843d2b54f425ad1243322068f.tar.lz
nixpkgs-dd7e1834ca455d9843d2b54f425ad1243322068f.tar.xz
nixpkgs-dd7e1834ca455d9843d2b54f425ad1243322068f.tar.zst
nixpkgs-dd7e1834ca455d9843d2b54f425ad1243322068f.zip
nixos/tests/prometheus-exporters.kea: init
Diffstat (limited to 'nixos/tests/prometheus-exporters.nix')
-rw-r--r--nixos/tests/prometheus-exporters.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 2b17d0ff78f..67ebb5e2921 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -326,6 +326,57 @@ let
       '';
     };
 
+    kea = {
+      exporterConfig = {
+        enable = true;
+        controlSocketPaths = [
+          "/run/kea/kea-dhcp6.sock"
+        ];
+      };
+      metricProvider = {
+        users.users.kea = {
+          isSystemUser = true;
+        };
+        users.groups.kea = {};
+
+        systemd.services.prometheus-kea-exporter.after = [ "kea-dhcp6.service" ];
+
+        systemd.services.kea-dhcp6 = let
+          configFile = pkgs.writeText "kea-dhcp6.conf" (builtins.toJSON {
+            Dhcp6 = {
+              "control-socket" = {
+                "socket-type" = "unix";
+                "socket-name" = "/run/kea/kea-dhcp6.sock";
+              };
+            };
+          });
+        in
+        {
+          after = [ "network.target" ];
+          wantedBy = [ "multi-user.target" ];
+
+          serviceConfig = {
+            DynamicUser = false;
+            User = "kea";
+            Group = "kea";
+            ExecStart = "${pkgs.kea}/bin/kea-dhcp6 -c ${configFile}";
+            StateDirectory = "kea";
+            RuntimeDirectory = "kea";
+            UMask = "0007";
+          };
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("kea-dhcp6.service")
+        wait_for_file("/run/kea/kea-dhcp6.sock")
+        wait_for_unit("prometheus-kea-exporter.service")
+        wait_for_open_port(9547)
+        succeed(
+            "curl --fail localhost:9547/metrics | grep 'packets_received_total'"
+        )
+      '';
+    };
+
     knot = {
       exporterConfig = {
         enable = true;