From 172f6c540b263f995ea0f676b9e09a8f6b0039b4 Mon Sep 17 00:00:00 2001
From: Tom Prince <tom.prince@private.storage>
Date: Tue, 4 Jan 2022 13:24:07 -0700
Subject: [PATCH] Add an assertion that monitored nodes have different VPN IP
 addresses.

---
 morph/lib/monitoring.nix | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/morph/lib/monitoring.nix b/morph/lib/monitoring.nix
index c52d19e8..0cedcf64 100644
--- a/morph/lib/monitoring.nix
+++ b/morph/lib/monitoring.nix
@@ -82,6 +82,17 @@ in {
   };
 
   config = {
+    assertions = [
+      {
+        assertion = let
+          vpnIPs = (map (node: node.vpnIPv4) monitoringHosts);
+        in vpnIPs == lib.unique vpnIPs;
+        message = ''
+          Duplicate grid.monitoringvpnIPv4 values specified for different nodes.
+        '';
+      }
+    ];
+
     deployment.secrets = lib.mkMerge [
       {
         "monitoringvpn-private-key" = {
-- 
GitLab