Add hydra as a distributed build machine.

This commit is contained in:
Tom Alexander 2025-03-23 17:07:12 -04:00
parent e733dcdcbf
commit acfc9ac1a4
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
7 changed files with 74 additions and 1 deletions

View File

@ -118,6 +118,14 @@
home.stateVersion = "24.11";
};
home-manager.users.root =
{ pkgs, ... }:
{
# The state version is required and should stay at the version you
# originally installed.
home.stateVersion = "24.11";
};
# Automatic garbage collection
nix.gc = lib.mkIf (!config.me.buildingIso) {
# Runs nix-collect-garbage --delete-older-than 5d

View File

@ -24,4 +24,9 @@
me.zsh.enable = true;
me.wireguard.activated = [ ];
me.wireguard.deactivated = [ ];
# Trust this key so nix running as root can ssh into hydra.
users.users.talexander.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB/IlYTQ0M5pFN5tdoswh37CDl/gbULI3h+SsKXCansh talexander@odo"
];
}

View File

@ -8,7 +8,17 @@
imports = [ ];
config = lib.mkMerge [
{ }
{
nix.settings.system-features = lib.mkForce [
"gccarch-znver4"
"gccarch-x86-64-v3"
"gccarch-x86-64-v4"
"benchmark"
"big-parallel"
# "kvm"
# "nixos-test"
];
}
(lib.mkIf (!config.me.buildingIso) {
nix.settings.system-features = lib.mkForce [
"gccarch-znver4"

View File

@ -9,6 +9,7 @@
./hardware-configuration.nix
./disk-config.nix
./optimized_build.nix
./distributed_build.nix
./power_management.nix
./screen_brightness.nix
./wifi.nix

View File

@ -0,0 +1,32 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ];
config = lib.mkMerge [
{
nix.distributedBuilds = true;
nix.buildMachines = [
{
hostName = "hydra";
systems = [
"x86_64-linux"
# "aarch64-linux"
];
maxJobs = 1;
speedFactor = 2;
supportedFeatures = [
# "nixos-test"
"benchmark"
"big-parallel"
# "kvm"
];
}
];
}
];
}

View File

@ -28,4 +28,12 @@
source = ./files/ssh_config;
};
};
home-manager.users.root =
{ pkgs, ... }:
{
home.file.".ssh/config" = {
source = ./files/ssh_config_root;
};
};
}

View File

@ -0,0 +1,9 @@
Host hydra
HostName ns1.fizz.buzz
Port 65122
User talexander
IdentitiesOnly yes
IdentityFile /persist/manual/ssh/root/keys/id_ed25519
Host *
Compression yes