diff --git a/morph/grid/local/grid.nix b/morph/grid/local/grid.nix index 41c4d0c85c9c701b797c89531b40d14bd2c2d941..88c19818c03287583b45ece80b9f0531f791bfc7 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 3f39f9773a91375081e767c62fcdd5427a44962a..b8c561713d742687dced05de7a46d08db448ea36 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 c4ef5008eb68df589b304de4e8f56ea6e754374d..8e68558a13c750eebac48c40dc0822d7f24db1bf 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 0f5ae16ffbba11b042fea62e2b5de2d026a104aa..2153d78a48dafed72f10daaba9029fe6626d468b 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"; };