{ config, lib, ... }: { nix.buildMachines = let base = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; in [ { hostName = "localhost"; protocol = null; maxJobs = 0; speedFactor = 0; systems = [ "x86_64-linux" ]; supportedFeatures = base; } { hostName = "integra.kyouma.net"; sshUser = "nix-ssh"; maxJobs = 2; speedFactor = 4; systems = [ "aarch64-linux" ]; supportedFeatures = base; sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path; } { hostName = "schrodinger.kyouma.net"; sshUser = "root"; maxJobs = 2; speedFactor = 20; systems = [ "riscv64-linux" ]; supportedFeatures = base ++ [ "gccarch-rv64imac" "gccarch-rv64imacfd" ]; sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path; } ] ++ lib.forEach (lib.genList (i: i + 1) 8) (num: { hostName = "build-worker-0${toString num}"; sshUser = "root"; maxJobs = 2; speedFactor = 20; systems = [ "i686-linux" "x86_64-linux" ]; supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "gccarch-x86-64" "gccarch-x86-64-v2" "gccarch-x86-64-v3" ]; sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path; }); nix.distributedBuilds = true; nixpkgs.config.allowUnsupportedSystem = true; nix.gc = { dates = "monthly"; options = lib.mkForce "--delete-older-than 90d"; }; nix.settings = { allowed-uris = [ "github:" "git+https://" "git+ssh://" "https://" ]; }; programs.ssh = { knownHosts = { "build-worker-03.nyantec.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEGqTY74c5g15DSNPNM2Wdr5jAwS7BFgX1XRnhtGOnJc"; "build-worker-04.nyantec.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICOq+5I+nlAN2lJoOtoXrYEDuZ/TMPMa43pIlablYigK"; "integra.kyouma.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIBwEQiSfaDrUAwgul4mktusBPcIVxI4pLNDh9DPopVU"; "schrodinger.kyouma.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKo7vZ6lS1wx76YsbAdhOsGcc20YMAW52ep8SZ/FCHDp"; "localhost".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPNVavo3YHVsrYwXRVISu7kDoknn+5inFGySn4azlB8P"; "[build-worker-kyoumanet.fly.dev]:2201".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDL2M97UBHg9aUfjDUxzmzg1r0ga0m3/stummBVwuEAB"; "[build-worker-kyoumanet.fly.dev]:2202".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTwVKL0P0chPM2Gz23rbT94844+w1CGJdCaZdzfjThz"; "[build-worker-kyoumanet.fly.dev]:2203".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAjy2eZGJQeAYy0+fLgW9jiS0jVY2LInY0NDMnzCvvKp"; "[build-worker-kyoumanet.fly.dev]:2204".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN72OyD9LYy4hq0WZ7ie5RPV+G54UreEJiA/RubjGoe9"; "[build-worker-kyoumanet.fly.dev]:2205".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICNh1o1I98XrI2XmOI6Q0aHPfyLCIQwKkKOxGUUeXL9v"; "[build-worker-kyoumanet.fly.dev]:2206".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGf0kxGgwOG9KhUhvxxTSiQC5YikrzZXKDgSpBw33qN4"; "[build-worker-kyoumanet.fly.dev]:2207".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL9z95a6Fn/dB+iNigEYpuJdBnBwCkIZYaKHcFbGP+RY"; "[build-worker-kyoumanet.fly.dev]:2208".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAk+FNMhTfAVqk3MfLp4QiG/i5ti53DlpnC0q+sOvU9O"; }; extraConfig = lib.concatLines (lib.genList (i: '' Host build-worker-0${toString (i + 1)} Hostname build-worker-kyoumanet.fly.dev Port 220${toString (i + 1)} '') 8); }; }