From 3c17d566643f313317d81349571197b74c937cc7 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Wed, 5 Aug 2026 17:54:38 -0400 Subject: [PATCH] Separate enabling distributed build vs substituters. --- .../hosts/family_disks/distributed_build.nix | 6 ++- .../i_only_boot_zfs/distributed_build.nix | 11 +++- .../hosts/odo/distributed_build.nix | 6 ++- .../hosts/odowork/distributed_build.nix | 6 ++- .../hosts/quark/distributed_build.nix | 10 +++- .../hosts/recovery/distributed_build.nix | 11 +++- .../roles/distributed_build/default.nix | 50 +++++++++++-------- 7 files changed, 70 insertions(+), 30 deletions(-) diff --git a/nix/configuration/hosts/family_disks/distributed_build.nix b/nix/configuration/hosts/family_disks/distributed_build.nix index 2387704..bade7f4 100644 --- a/nix/configuration/hosts/family_disks/distributed_build.nix +++ b/nix/configuration/hosts/family_disks/distributed_build.nix @@ -4,13 +4,15 @@ config = { me.distributed_build.enable = true; me.distributed_build.machines.quark = { - enable = false; + enable_build = false; + enable_substituter = false; additional_config = { speedFactor = 2; }; }; me.distributed_build.machines.hydra = { - enable = true; + enable_build = false; + enable_substituter = true; additional_config = { speedFactor = 2; }; diff --git a/nix/configuration/hosts/i_only_boot_zfs/distributed_build.nix b/nix/configuration/hosts/i_only_boot_zfs/distributed_build.nix index a6ce7fb..bade7f4 100644 --- a/nix/configuration/hosts/i_only_boot_zfs/distributed_build.nix +++ b/nix/configuration/hosts/i_only_boot_zfs/distributed_build.nix @@ -4,10 +4,19 @@ config = { me.distributed_build.enable = true; me.distributed_build.machines.quark = { - enable = true; + enable_build = false; + enable_substituter = false; additional_config = { speedFactor = 2; }; }; + me.distributed_build.machines.hydra = { + enable_build = false; + enable_substituter = true; + additional_config = { + speedFactor = 2; + }; + substituter_url = "ssh-ng://nixworker@ns1.fizz.buzz:65122?compress=true&ssh-key=/persist/manual/ssh/root/keys/id_ed25519&remote-store=local?root=/.disk/root"; + }; }; } diff --git a/nix/configuration/hosts/odo/distributed_build.nix b/nix/configuration/hosts/odo/distributed_build.nix index 2387704..bade7f4 100644 --- a/nix/configuration/hosts/odo/distributed_build.nix +++ b/nix/configuration/hosts/odo/distributed_build.nix @@ -4,13 +4,15 @@ config = { me.distributed_build.enable = true; me.distributed_build.machines.quark = { - enable = false; + enable_build = false; + enable_substituter = false; additional_config = { speedFactor = 2; }; }; me.distributed_build.machines.hydra = { - enable = true; + enable_build = false; + enable_substituter = true; additional_config = { speedFactor = 2; }; diff --git a/nix/configuration/hosts/odowork/distributed_build.nix b/nix/configuration/hosts/odowork/distributed_build.nix index 2387704..bade7f4 100644 --- a/nix/configuration/hosts/odowork/distributed_build.nix +++ b/nix/configuration/hosts/odowork/distributed_build.nix @@ -4,13 +4,15 @@ config = { me.distributed_build.enable = true; me.distributed_build.machines.quark = { - enable = false; + enable_build = false; + enable_substituter = false; additional_config = { speedFactor = 2; }; }; me.distributed_build.machines.hydra = { - enable = true; + enable_build = false; + enable_substituter = true; additional_config = { speedFactor = 2; }; diff --git a/nix/configuration/hosts/quark/distributed_build.nix b/nix/configuration/hosts/quark/distributed_build.nix index 0cc116b..bade7f4 100644 --- a/nix/configuration/hosts/quark/distributed_build.nix +++ b/nix/configuration/hosts/quark/distributed_build.nix @@ -3,8 +3,16 @@ config = { me.distributed_build.enable = true; + me.distributed_build.machines.quark = { + enable_build = false; + enable_substituter = false; + additional_config = { + speedFactor = 2; + }; + }; me.distributed_build.machines.hydra = { - enable = true; + enable_build = false; + enable_substituter = true; additional_config = { speedFactor = 2; }; diff --git a/nix/configuration/hosts/recovery/distributed_build.nix b/nix/configuration/hosts/recovery/distributed_build.nix index a6ce7fb..bade7f4 100644 --- a/nix/configuration/hosts/recovery/distributed_build.nix +++ b/nix/configuration/hosts/recovery/distributed_build.nix @@ -4,10 +4,19 @@ config = { me.distributed_build.enable = true; me.distributed_build.machines.quark = { - enable = true; + enable_build = false; + enable_substituter = false; additional_config = { speedFactor = 2; }; }; + me.distributed_build.machines.hydra = { + enable_build = false; + enable_substituter = true; + additional_config = { + speedFactor = 2; + }; + substituter_url = "ssh-ng://nixworker@ns1.fizz.buzz:65122?compress=true&ssh-key=/persist/manual/ssh/root/keys/id_ed25519&remote-store=local?root=/.disk/root"; + }; }; } diff --git a/nix/configuration/roles/distributed_build/default.nix b/nix/configuration/roles/distributed_build/default.nix index a772c85..e7b1c5b 100644 --- a/nix/configuration/roles/distributed_build/default.nix +++ b/nix/configuration/roles/distributed_build/default.nix @@ -10,7 +10,14 @@ let make_machine_config = name: { - enable = lib.mkOption { + enable_build = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to use the ${name} machine during distributed builds."; + }; + + enable_substituter = lib.mkOption { type = lib.types.bool; default = false; example = true; @@ -59,11 +66,30 @@ let hostName = lib.mkForce "hydra?remote-store=local?root=/.disk/root"; }; }; + build_machine_list = ( + map ( + hostname: + (lib.mkIf config.me.distributed_build.machines."${hostname}".enable_build ( + lib.mkMerge [ + { + hostName = hostname; + sshUser = "nixworker"; + sshKey = "/persist/manual/ssh/root/keys/id_ed25519"; + maxJobs = 1; + supportedFeatures = all_nixos_configs."${hostname}".config.me.optimizations.system_features; + protocol = "ssh-ng"; + } + static_host_configs."${hostname}" + config.me.distributed_build.machines."${hostname}".additional_config + ] + )) + ) (builtins.attrNames all_nixos_configs) + ); substituters_list = ( map ( hostname: (lib.mkIf ( - config.me.distributed_build.machines."${hostname}".enable + config.me.distributed_build.machines."${hostname}".enable_substituter && config.me.distributed_build.machines."${hostname}".substituter_url != null ) (config.me.distributed_build.machines."${hostname}".substituter_url)) ) (builtins.attrNames all_nixos_configs) @@ -112,25 +138,7 @@ in ]; } { - nix.buildMachines = ( - map ( - hostname: - (lib.mkIf config.me.distributed_build.machines."${hostname}".enable ( - lib.mkMerge [ - { - hostName = hostname; - sshUser = "nixworker"; - sshKey = "/persist/manual/ssh/root/keys/id_ed25519"; - maxJobs = 1; - supportedFeatures = all_nixos_configs."${hostname}".config.me.optimizations.system_features; - protocol = "ssh-ng"; - } - static_host_configs."${hostname}" - config.me.distributed_build.machines."${hostname}".additional_config - ] - )) - ) (builtins.attrNames all_nixos_configs) - ); + nix.buildMachines = build_machine_list; } (lib.mkIf has_any_substituters { nix.settings.substitute = lib.mkForce true;