diff --git a/morph/grid/local/grid.nix b/morph/grid/local/grid.nix index fdc0cde55be4f1b644c212ce20f6c3e44af8e3df..dccb3813500c52eb234a41e304b3b29b2f893428 100644 --- a/morph/grid/local/grid.nix +++ b/morph/grid/local/grid.nix @@ -1,7 +1,7 @@ -# Load the helper function and call it with arguments tailored for the local -# grid. It will make the morph configuration for us. We share this function -# with the production grid and have one fewer possible point of divergence. -import ../../lib/make-grid.nix { +let lib = import ../../lib; +in lib.make-grid { + # Make a morph configuration for this grid. We share this function + # with the other grids and have one fewer possible point of divergence. name = "LocalDev"; config = ./config.json; nodes = cfg: @@ -22,7 +22,7 @@ import ../../lib/make-grid.nix { nodeExporterTargets = [ "monitoring" "payments" "storage1" "storage2" ]; in { - "payments" = import ../../lib/make-issuer.nix (cfg // rec { + "payments" = lib.make-issuer (cfg // rec { publicIPv4 = "192.168.67.21"; monitoringvpnIPv4 = "172.23.23.11"; hardware = import ./virtual-hardware.nix ({ inherit publicIPv4; }); @@ -31,7 +31,7 @@ import ../../lib/make-grid.nix { inherit sshUsers; }); - "storage1" = import ../../lib/make-testing.nix (cfg // rec { + "storage1" = lib.make-testing (cfg // rec { publicIPv4 = "192.168.67.22"; monitoringvpnIPv4 = "172.23.23.12"; hardware = import ./virtual-hardware.nix ({ inherit publicIPv4; }); @@ -40,7 +40,7 @@ import ../../lib/make-grid.nix { inherit sshUsers; }); - "storage2" = import ../../lib/make-testing.nix (cfg // rec { + "storage2" = lib.make-testing (cfg // rec { publicIPv4 = "192.168.67.23"; monitoringvpnIPv4 = "172.23.23.13"; hardware = import ./virtual-hardware.nix ({ inherit publicIPv4; }); @@ -49,7 +49,7 @@ import ../../lib/make-grid.nix { inherit sshUsers; }); - "monitoring" = import ../../lib/make-monitoring.nix (cfg // rec { + "monitoring" = lib.make-monitoring (cfg // rec { publicIPv4 = "192.168.67.24"; monitoringvpnIPv4 = "172.23.23.1"; inherit vpnClientIPs; diff --git a/morph/grid/production/grid.nix b/morph/grid/production/grid.nix index fee0c9be6faed47d4a702b5b53c2419cbb677ba6..aea3a9df56c41a260a217e2b4d02c7a170bccd6a 100644 --- a/morph/grid/production/grid.nix +++ b/morph/grid/production/grid.nix @@ -1,7 +1,6 @@ -# Load the helper function and call it with arguments tailored for the testing -# grid. It will make the morph configuration for us. We share this function -# with the testing grid and have one fewer possible point of divergence. -import ../../lib/make-grid.nix { +# See morph/grid/local/grid.nix for additional commentary. +let lib = import ../../lib; +in lib.make-grid { name = "Production"; config = ./config.json; nodes = cfg: @@ -52,16 +51,16 @@ import ../../lib/make-grid.nix { # doesn't specify one. # # The names must be unique! - "payments.privatestorage.io" = import ../../lib/make-issuer.nix (cfg // { + "payments.privatestorage.io" = lib.make-issuer (cfg // { publicIPv4 = "18.184.142.208"; monitoringvpnIPv4 = "172.23.23.11"; inherit monitoringvpnKeyDir; inherit sshUsers; - hardware = ../../lib/issuer-aws.nix; + hardware = lib.hardware-aws; stateVersion = "19.03"; }); - "storage001" = import ../../lib/make-storage.nix (cfg // { + "storage001" = lib.make-storage (cfg // { cfg = import ./storage001-config.nix; inherit sshUsers; hardware = ./storage001-hardware.nix; @@ -69,7 +68,7 @@ import ../../lib/make-grid.nix { monitoringvpnIPv4 = "172.23.23.21"; inherit monitoringvpnKeyDir; }); - "storage002" = import ../../lib/make-storage.nix (cfg // { + "storage002" = lib.make-storage (cfg // { cfg = import ./storage002-config.nix; inherit sshUsers; hardware = ./storage002-hardware.nix; @@ -77,7 +76,7 @@ import ../../lib/make-grid.nix { monitoringvpnIPv4 = "172.23.23.22"; inherit monitoringvpnKeyDir; }); - "storage003" = import ../../lib/make-storage.nix (cfg // { + "storage003" = lib.make-storage (cfg // { cfg = import ./storage003-config.nix; inherit sshUsers; hardware = ./storage003-hardware.nix; @@ -85,7 +84,7 @@ import ../../lib/make-grid.nix { monitoringvpnIPv4 = "172.23.23.23"; inherit monitoringvpnKeyDir; }); - "storage004" = import ../../lib/make-storage.nix (cfg // { + "storage004" = lib.make-storage (cfg // { cfg = import ./storage004-config.nix; inherit sshUsers; hardware = ./storage004-hardware.nix; @@ -93,7 +92,7 @@ import ../../lib/make-grid.nix { monitoringvpnIPv4 = "172.23.23.24"; inherit monitoringvpnKeyDir; }); - "storage005" = import ../../lib/make-storage.nix (cfg // { + "storage005" = lib.make-storage (cfg // { cfg = import ./storage005-config.nix; inherit sshUsers; hardware = ./storage005-hardware.nix; @@ -102,14 +101,14 @@ import ../../lib/make-grid.nix { inherit monitoringvpnKeyDir; }); - "monitoring" = import ../../lib/make-monitoring.nix (cfg // { + "monitoring" = lib.make-monitoring (cfg // { publicIPv4 = "monitoring.private.storage"; monitoringvpnIPv4 = "172.23.23.1"; inherit monitoringvpnKeyDir; inherit vpnClientIPs; inherit hostsMap; inherit nodeExporterTargets; - hardware = ../../lib/issuer-aws.nix; + hardware = lib.hardware-aws; stateVersion = "19.09"; inherit sshUsers; }); diff --git a/morph/grid/testing/grid.nix b/morph/grid/testing/grid.nix index e31a28f2eb7817f393f4e8b6b71972b7fd2f79f1..73635932a4ed97fd482ec8cb57dc904c2cde519c 100644 --- a/morph/grid/testing/grid.nix +++ b/morph/grid/testing/grid.nix @@ -1,7 +1,6 @@ -# Load the helper function and call it with arguments tailored for the testing -# grid. It will make the morph configuration for us. We share this function -# with the production grid and have one fewer possible point of divergence. -import ../../lib/make-grid.nix { +# See morph/grid/local/grid.nix for additional commentary. +let lib = import ../../lib; +in lib.make-grid { name = "Testing"; config = ./config.json; nodes = cfg: @@ -21,16 +20,16 @@ import ../../lib/make-grid.nix { nodeExporterTargets = [ "monitoring" "payments" "storage001" ]; in { - "payments" = import ../../lib/make-issuer.nix (cfg // { + "payments" = lib.make-issuer (cfg // { publicIPv4 = "18.194.183.13"; monitoringvpnIPv4 = "172.23.23.11"; inherit monitoringvpnKeyDir; inherit sshUsers; - hardware = ../../lib/issuer-aws.nix; + hardware = lib.hardware-aws; stateVersion = "19.03"; }); - "storage001" = import ../../lib/make-testing.nix (cfg // { + "storage001" = lib.make-testing (cfg // { publicIPv4 = "3.120.26.190"; monitoringvpnIPv4 = "172.23.23.12"; inherit monitoringvpnKeyDir; @@ -39,14 +38,14 @@ import ../../lib/make-grid.nix { stateVersion = "19.03"; }); - "monitoring" = import ../../lib/make-monitoring.nix (cfg // { + "monitoring" = lib.make-monitoring (cfg // { publicIPv4 = "18.156.171.217"; monitoringvpnIPv4 = "172.23.23.1"; inherit monitoringvpnKeyDir; inherit vpnClientIPs; inherit hostsMap; inherit nodeExporterTargets; - hardware = ../../lib/issuer-aws.nix; + hardware = lib.hardware-aws; stateVersion = "19.09"; inherit sshUsers; }); diff --git a/morph/lib/default.nix b/morph/lib/default.nix new file mode 100644 index 0000000000000000000000000000000000000000..95a3ee14e35f664886e5be55d9d206e1b5701610 --- /dev/null +++ b/morph/lib/default.nix @@ -0,0 +1,9 @@ +rec { + make-grid = import ./make-grid.nix; + make-issuer = import ./make-issuer.nix; + make-testing = import ./make-testing.nix; + make-storage = import ./make-storage.nix; + make-monitoring = import ./make-monitoring.nix; + + hardware-aws = import ./issuer-aws.nix; +}