From 2aa4a73b0f394812b44b3184225a27bd26a4f18e Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone <exarkun@twistedmatrix.com> Date: Thu, 24 Jun 2021 07:25:24 -0400 Subject: [PATCH] Convert customize-issuer from positional to set arguments --- morph/grid/local/grid.nix | 20 ++++++++++++-------- morph/grid/production/grid.nix | 18 +++++++++++------- morph/grid/testing/grid.nix | 18 +++++++++++------- morph/lib/customize-issuer.nix | 24 +++++++++++++++++------- 4 files changed, 51 insertions(+), 29 deletions(-) diff --git a/morph/grid/local/grid.nix b/morph/grid/local/grid.nix index 8f705c03..1e063d00 100644 --- a/morph/grid/local/grid.nix +++ b/morph/grid/local/grid.nix @@ -2,17 +2,21 @@ let pkgs = import <nixpkgs> { }; gridlib = import ../../lib; - config = pkgs.lib.trivial.importJSON ./config.json; - sshUsers = import ./secrets/users.nix; + rawConfig = pkgs.lib.trivial.importJSON ./config.json; + config = rawConfig // { + sshUsers = import ./secrets/users.nix; - # Get absolute vpn key directory path, as a string: - monitoringvpnKeyDir = toString ./. + "/${config.monitoringvpnKeyDir}"; + # Get absolute vpn key directory path, as a string: + monitoringvpnKeyDir = toString ./. + "/${rawConfig.monitoringvpnKeyDir}"; + }; payments = let publicIPv4 = "192.168.67.21"; in { imports = [ gridlib.issuer (import ./virtual-hardware.nix ({ inherit publicIPv4; })) - (gridlib.customize-issuer config sshUsers monitoringvpnKeyDir "172.23.23.11" "19.03") + (gridlib.customize-issuer (config // { + monitoringvpnIPv4 = "172.23.23.11"; + })) ]; }; @@ -20,7 +24,7 @@ let imports = [ gridlib.storage (import ./virtual-hardware.nix ({ inherit publicIPv4; })) - (gridlib.customize-storage config sshUsers publicIPv4 monitoringvpnKeyDir "172.23.23.12" "19.09") + (gridlib.customize-storage config config.sshUsers publicIPv4 config.monitoringvpnKeyDir "172.23.23.12" "19.09") ]; }; @@ -28,7 +32,7 @@ let imports = [ gridlib.storage (import ./virtual-hardware.nix ({ inherit publicIPv4; })) - (gridlib.customize-storage config sshUsers publicIPv4 monitoringvpnKeyDir "172.23.23.13" "19.09") + (gridlib.customize-storage config config.sshUsers publicIPv4 config.monitoringvpnKeyDir "172.23.23.13" "19.09") ]; }; @@ -36,7 +40,7 @@ let imports = [ gridlib.monitoring (import ./virtual-hardware.nix ({ inherit publicIPv4; })) - (gridlib.customize-monitoring hostsMap monitoringvpnKeyDir publicIPv4 "172.23.23.1" vpnClientIPs nodeExporterTargets [] "19.09") + (gridlib.customize-monitoring hostsMap config.monitoringvpnKeyDir publicIPv4 "172.23.23.1" vpnClientIPs nodeExporterTargets [] "19.09") ]; }; diff --git a/morph/grid/production/grid.nix b/morph/grid/production/grid.nix index 0a86aa14..9b7c4979 100644 --- a/morph/grid/production/grid.nix +++ b/morph/grid/production/grid.nix @@ -3,17 +3,21 @@ let pkgs = import <nixpkgs> { }; gridlib = import ../../lib; - config = pkgs.lib.trivial.importJSON ./config.json; - sshUsers = import ./secrets/users.nix; + rawConfig = pkgs.lib.trivial.importJSON ./config.json; + config = rawConfig // { + sshUsers = import ./secrets/users.nix; - # Get absolute vpn key directory path, as a string: - monitoringvpnKeyDir = toString ./. + "/${config.monitoringvpnKeyDir}"; + # Get absolute vpn key directory path, as a string: + monitoringvpnKeyDir = toString ./. + "/${rawConfig.monitoringvpnKeyDir}"; + }; "payments.privatestorage.io" = { imports = [ gridlib.issuer gridlib.hardware-aws - (gridlib.customize-issuer config sshUsers monitoringvpnKeyDir "172.23.23.11" "19.03") + (gridlib.customize-issuer (config // { + monitoringvpnIPv4 = "172.23.23.11"; + })) ]; }; @@ -21,7 +25,7 @@ let imports = [ gridlib.monitoring gridlib.hardware-aws - (gridlib.customize-monitoring hostsMap monitoringvpnKeyDir publicIPv4 "172.23.23.1" vpnClientIPs nodeExporterTargets [] "19.09") + (gridlib.customize-monitoring hostsMap config.monitoringvpnKeyDir publicIPv4 "172.23.23.1" vpnClientIPs nodeExporterTargets [] "19.09") ]; }; @@ -39,7 +43,7 @@ let gridlib.storage # Then customize the storage system a little bit based on this node's particulars. - (gridlib.customize-storage config sshUsers nodecfg.publicIPv4 monitoringvpnKeyDir vpnIP stateVersion) + (gridlib.customize-storage config config.sshUsers nodecfg.publicIPv4 config.monitoringvpnKeyDir vpnIP stateVersion) ]; # And supply configuration for those hardware / network / bootloader diff --git a/morph/grid/testing/grid.nix b/morph/grid/testing/grid.nix index 0ec06cbb..e5eaf990 100644 --- a/morph/grid/testing/grid.nix +++ b/morph/grid/testing/grid.nix @@ -3,17 +3,21 @@ let pkgs = import <nixpkgs> { }; gridlib = import ../../lib; - config = pkgs.lib.trivial.importJSON ./config.json; - sshUsers = import ./secrets/users.nix; + rawConfig = pkgs.lib.trivial.importJSON ./config.json; + config = rawConfig // { + sshUsers = import ./secrets/users.nix; - # Get absolute vpn key directory path, as a string: - monitoringvpnKeyDir = toString ./. + "/${config.monitoringvpnKeyDir}"; + # Get absolute vpn key directory path, as a string: + monitoringvpnKeyDir = toString ./. + "/${rawConfig.monitoringvpnKeyDir}"; + }; payments = { imports = [ gridlib.issuer gridlib.hardware-aws - (gridlib.customize-issuer config sshUsers monitoringvpnKeyDir "172.23.23.11" "19.03") + (gridlib.customize-issuer (config // { + monitoringvpnIPv4 = "172.23.23.11"; + })) ]; }; @@ -21,7 +25,7 @@ let imports = [ gridlib.storage ./testing001-hardware.nix - (gridlib.customize-storage config sshUsers publicIPv4 monitoringvpnKeyDir "172.23.23.12" "19.03") + (gridlib.customize-storage config config.sshUsers publicIPv4 config.monitoringvpnKeyDir "172.23.23.12" "19.03") ]; }; @@ -29,7 +33,7 @@ let imports = [ gridlib.monitoring gridlib.hardware-aws - (gridlib.customize-monitoring hostsMap monitoringvpnKeyDir publicIPv4 "172.23.23.1" vpnClientIPs nodeExporterTargets [] "19.09") + (gridlib.customize-monitoring hostsMap config.monitoringvpnKeyDir publicIPv4 "172.23.23.1" vpnClientIPs nodeExporterTargets [] "19.09") ]; }; diff --git a/morph/lib/customize-issuer.nix b/morph/lib/customize-issuer.nix index a7e82713..7c8356a2 100644 --- a/morph/lib/customize-issuer.nix +++ b/morph/lib/customize-issuer.nix @@ -1,7 +1,17 @@ -cfg: sshUsers: monitoringvpnKeyDir: monitoringvpnIPv4: stateVersion: { +{ ristrettoSigningKeyPath +, stripeSecretKeyPath +, monitoringvpnKeyDir +, monitoringvpnEndpoint +, monitoringvpnIPv4 +, sshUsers +, letsEncryptAdminEmail +, issuerDomains +, allowedChargeOrigins +, ... +}: { deployment.secrets = { - "ristretto-signing-key".source = cfg.ristrettoSigningKeyPath; - "stripe-secret-key".source = cfg.stripeSecretKeyPath; + "ristretto-signing-key".source = ristrettoSigningKeyPath; + "stripe-secret-key".source = stripeSecretKeyPath; "monitoringvpn-secret-key".source = "${monitoringvpnKeyDir}/${monitoringvpnIPv4}.key"; "monitoringvpn-preshared-key".source = "${monitoringvpnKeyDir}/preshared.key"; }; @@ -10,14 +20,14 @@ cfg: sshUsers: monitoringvpnKeyDir: monitoringvpnIPv4: stateVersion: { services.private-storage.monitoring.vpn.client = { enable = true; ip = monitoringvpnIPv4; - endpoint = cfg.monitoringvpnEndpoint; + endpoint = monitoringvpnEndpoint; endpointPublicKeyFile = "${monitoringvpnKeyDir}/server.pub"; }; services.private-storage-issuer = { - letsEncryptAdminEmail = cfg.letsEncryptAdminEmail; - domains = cfg.issuerDomains; - allowedChargeOrigins = cfg.allowedChargeOrigins; + letsEncryptAdminEmail = letsEncryptAdminEmail; + domains = issuerDomains; + allowedChargeOrigins = allowedChargeOrigins; }; system.stateVersion = "19.03"; -- GitLab