nixos-config/modules/system/settings/nix/distributed/default.nix

79 lines
3.1 KiB
Nix

{ config, lib, nodes, ... }:
{
nix = {
# Machines to build derviations on
buildMachines = with nodes; [
{
hostName = "midas";
system = midas.config.nixpkgs.hostPlatform.system;
supportedFeatures = midas.config.nix.settings.system-features;
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUZjRk12cng5L2lVWjFtRXViZitRRjFpM0xOVHhGaGFVLzF6RlNqZG8wa0sgcm9vdEBraXR0eQo=";
protocol = "ssh-ng";
sshKey = "/root/.ssh/buildkey";
maxJobs = 8;
}
{
hostName = "kitty";
system = kitty.config.nixpkgs.hostPlatform.system;
supportedFeatures = kitty.config.nix.settings.system-features;
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUlyR21zeWE1RFhLdVhPNmpOalVscllIcWs0OUtMenhNLzYwR1h0TFJMckwgcm9vdEBraXR0eQo=";
protocol = "ssh-ng";
sshKey = "/root/.ssh/buildkey";
maxJobs = 8;
}
{
hostName = "detritus";
system = detritus.config.nixpkgs.hostPlatform.system;
supportedFeatures = detritus.config.nix.settings.system-features;
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSU4rR3ZMcm80RFZtbHZtWGNhc1UxZ2N0SVg5cWN0N21adEVscEI3MzVBb0wgcm9vdEBkZXRyaXR1cwo=";
protocol = "ssh-ng";
sshKey = "/root/.ssh/buildkey";
maxJobs = 8;
}
{
hostName = "elder";
system = elder.config.nixpkgs.hostPlatform.system;
supportedFeatures = elder.config.nix.settings.system-features;
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUZqbUo2Ymt1TzU3Z3A2R1pERWZSMU83a3JkZjV3aXFyT0JDNXB6VERsOTEgcm9vdEBlbGRlcgo=";
protocol = "ssh-ng";
sshKey = "/root/.ssh/buildkey";
maxJobs = 8;
}
{
hostName = "prophet";
system = prophet.config.nixpkgs.hostPlatform.system;
supportedFeatures = prophet.config.nix.settings.system-features;
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUNycDNZL1gyQlJVRU54KzBHTVRtQjFWREE2U2l3a0dnZEpNSFNkTU1lcE0gcm9vdEBwcm9waGV0Cg==";
protocol = "ssh-ng";
sshKey = "/root/.ssh/buildkey";
maxJobs = 8;
}
];
# Enable distributed builds
distributedBuilds = true;
settings = {
# Serve derivations more efficiently, using substituters
substituters = [
"ssh-ng://midas"
"ssh-ng://kitty"
"ssh-ng://detritus"
"ssh-ng://elder"
"ssh-ng://prophet"
];
trusted-public-keys = [
"midas:YpyfZyVlTlPjzcVsYBnN13EgeK95y1WXxm9h1V8tM7E="
"kitty:QLl9Do4v+2Q/fapozUGoXIKJul+Zck3yAsmAo9Lg4is="
"detritus:xtQVaIyDIBWS+EAU11dBsW9BUMT7aAZRPjKp3Udgdvc="
"elder:U+zIEvxNeqOxAWbZyrJzDNrJF1GJdcrLEYbIqmKGd7U="
"prophet:NPlWmuX1vz95uUIddQXlwrkmdSMZW1U27CdEY812brg="
];
# Settings to sign the derivations and allow building
max-jobs = if builtins.elem "server" config.system.nixos.tags then "auto" else 0;
secret-key-files = "/var/lib/nixos/cache-priv-key.pem";
trusted-users = [ "root" ];
};
};
}