From 63d7f43c8f5f2bcf0ae61bb8f2baa1b612ef07bd Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Thu, 24 Jun 2021 07:38:32 -0400
Subject: [PATCH] Convert customize-storage from positional to set arguments

---
 morph/grid/local/grid.nix       | 12 ++++++++++--
 morph/grid/production/grid.nix  |  5 ++++-
 morph/grid/testing/grid.nix     |  6 +++++-
 morph/lib/customize-storage.nix | 21 ++++++++++++++-------
 4 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/morph/grid/local/grid.nix b/morph/grid/local/grid.nix
index 41c4d0c8..88c19818 100644
--- a/morph/grid/local/grid.nix
+++ b/morph/grid/local/grid.nix
@@ -24,7 +24,11 @@ let
     imports = [
       gridlib.storage
       (import ./virtual-hardware.nix ({ inherit publicIPv4; }))
-      (gridlib.customize-storage config config.sshUsers publicIPv4 config.monitoringvpnKeyDir "172.23.23.12" "19.09")
+      (gridlib.customize-storage (config // {
+        inherit publicIPv4;
+        monitoringvpnIPv4 = "172.23.23.12";
+        stateVersion = "19.09";
+      }))
     ];
   };
 
@@ -32,7 +36,11 @@ let
     imports = [
       gridlib.storage
       (import ./virtual-hardware.nix ({ inherit publicIPv4; }))
-      (gridlib.customize-storage config config.sshUsers publicIPv4 config.monitoringvpnKeyDir "172.23.23.13" "19.09")
+      (gridlib.customize-storage (config // {
+        inherit publicIPv4;
+        monitoringvpnIPv4 = "172.23.23.13";
+        stateVersion = "19.09";
+      }))
     ];
   };
 
diff --git a/morph/grid/production/grid.nix b/morph/grid/production/grid.nix
index 3f39f977..b8c56171 100644
--- a/morph/grid/production/grid.nix
+++ b/morph/grid/production/grid.nix
@@ -48,7 +48,10 @@ let
       gridlib.storage
 
       # Then customize the storage system a little bit based on this node's particulars.
-      (gridlib.customize-storage config config.sshUsers nodecfg.publicIPv4 config.monitoringvpnKeyDir vpnIP stateVersion)
+      (gridlib.customize-storage (config // nodecfg // {
+        monitoringvpnIPv4 = vpnIP;
+        inherit stateVersion;
+      }))
     ];
 
     # And supply configuration for those hardware / network / bootloader
diff --git a/morph/grid/testing/grid.nix b/morph/grid/testing/grid.nix
index c4ef5008..8e68558a 100644
--- a/morph/grid/testing/grid.nix
+++ b/morph/grid/testing/grid.nix
@@ -25,7 +25,11 @@ let
     imports = [
       gridlib.storage
       ./testing001-hardware.nix
-      (gridlib.customize-storage config config.sshUsers publicIPv4 config.monitoringvpnKeyDir "172.23.23.12" "19.03")
+      (gridlib.customize-storage (config // {
+        inherit publicIPv4;
+        monitoringvpnIPv4 = "172.23.23.12";
+        stateVersion = "19.03";
+      }))
     ];
   };
 
diff --git a/morph/lib/customize-storage.nix b/morph/lib/customize-storage.nix
index 0f5ae16f..2153d78a 100644
--- a/morph/lib/customize-storage.nix
+++ b/morph/lib/customize-storage.nix
@@ -1,21 +1,28 @@
-cfg: sshUsers: publicIPv4: monitoringvpnKeyDir: monitoringvpnIPv4: stateVersion: {
+{ ristrettoSigningKeyPath
+, passValue
+, publicStoragePort
+, sshUsers
+, publicIPv4
+, monitoringvpnKeyDir
+, monitoringvpnEndpoint
+, monitoringvpnIPv4
+, stateVersion
+, ...
+}: {
   deployment.secrets = {
-    "ristretto-signing-key".source = cfg.ristrettoSigningKeyPath;
+    "ristretto-signing-key".source = ristrettoSigningKeyPath;
     "monitoringvpn-secret-key".source = "${monitoringvpnKeyDir}/${monitoringvpnIPv4}.key";
     "monitoringvpn-preshared-key".source = "${monitoringvpnKeyDir}/preshared.key";
   };
 
   services.private-storage = {
-    sshUsers = sshUsers;
-    inherit publicIPv4;
-    inherit (cfg) passValue;
-    inherit (cfg) publicStoragePort;
+    inherit sshUsers publicIPv4 passValue publicStoragePort;
   };
 
   services.private-storage.monitoring.vpn.client = {
     enable = true;
     ip = monitoringvpnIPv4;
-    endpoint = cfg.monitoringvpnEndpoint;
+    endpoint = monitoringvpnEndpoint;
     endpointPublicKeyFile = "${monitoringvpnKeyDir}/server.pub";
   };
 
-- 
GitLab