2022-05-07 00:50:01 +02:00
|
|
|
{ hostRegistry, config, lib, pkgs, ... }:
|
2022-06-22 00:16:03 +02:00
|
|
|
{
|
2021-03-12 21:45:12 +01:00
|
|
|
nix = {
|
|
|
|
extraOptions = ''
|
2022-01-08 01:33:50 +01:00
|
|
|
allowed-uris = http:// https:// ssh://
|
2021-03-12 21:45:12 +01:00
|
|
|
'';
|
2022-01-08 01:33:50 +01:00
|
|
|
trustedUsers = [ "hydra" "root" ];
|
2022-06-23 20:22:23 +02:00
|
|
|
buildMachines = [{
|
2021-03-24 21:09:51 +01:00
|
|
|
hostName = "localhost";
|
2022-06-21 23:34:38 +02:00
|
|
|
system = lib.concatStringsSep "," ([
|
2022-06-23 20:22:23 +02:00
|
|
|
pkgs.system
|
|
|
|
"i686-linux"
|
2022-06-21 23:34:38 +02:00
|
|
|
] ++ config.boot.binfmt.emulatedSystems);
|
2022-05-05 22:34:51 +02:00
|
|
|
supportedFeatures = [ "big-parallel" "benchmark" "kvm" "nixos-test" ];
|
2022-05-07 01:01:02 +02:00
|
|
|
inherit (config.nix) maxJobs;
|
2022-06-23 20:22:23 +02:00
|
|
|
# } {
|
|
|
|
# hostName = "client@dacbert.hq.c3d2.de";
|
|
|
|
# system = lib.concatStringsSep "," [
|
|
|
|
# "aarch64-linux" "armv6l-linux" "armv7l-linux"
|
|
|
|
# ];
|
|
|
|
# supportedFeatures = [ "kvm" "benchmark" "nixos-test" ];
|
|
|
|
# maxJobs = 1;
|
2022-06-12 00:16:00 +02:00
|
|
|
}];
|
2022-01-09 01:50:32 +01:00
|
|
|
|
|
|
|
daemonCPUSchedPolicy = "idle";
|
|
|
|
daemonIOSchedClass = "idle";
|
|
|
|
daemonIOSchedPriority = 7;
|
2021-03-12 21:45:12 +01:00
|
|
|
};
|
|
|
|
|
2022-06-23 20:22:23 +02:00
|
|
|
services = {
|
|
|
|
hydra-dev = {
|
|
|
|
enable = true;
|
|
|
|
hydraURL = "https://hydra.hq.c3d2.de";
|
|
|
|
logo = ./c3d2.svg;
|
|
|
|
minimumDiskFree = 1;
|
|
|
|
minimumDiskFreeEvaluator = 1;
|
|
|
|
notificationSender = "hydra@spam.works";
|
|
|
|
useSubstitutes = true;
|
|
|
|
extraConfig =
|
|
|
|
let
|
|
|
|
key = config.sops.secrets."nix-serve/secretKey".path;
|
|
|
|
in
|
|
|
|
''
|
|
|
|
binary_cache_secret_key_file = ${key}
|
2022-06-23 23:00:14 +02:00
|
|
|
evaluator_workers = 1
|
2022-06-23 20:22:23 +02:00
|
|
|
evaluator_max_memory_size = 2048
|
|
|
|
max_output_size = 4294967296
|
|
|
|
store_uri = auto?secret-key=${key}&write-nar-listing=1&ls-compression=zstd&log-compression=zstd
|
|
|
|
upload_logs_to_binary_cache = true
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
nginx =
|
|
|
|
let
|
|
|
|
hydraVhost = {
|
|
|
|
forceSSL = true;
|
|
|
|
enableACME = true;
|
|
|
|
locations."/".proxyPass =
|
|
|
|
"http://localhost:${toString config.services.hydra.port}";
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
enable = true;
|
|
|
|
virtualHosts = {
|
|
|
|
"hydra.hq.c3d2.de" = hydraVhost // {
|
|
|
|
default = true;
|
|
|
|
};
|
|
|
|
"hydra.serv.zentralwerk.org" = hydraVhost;
|
|
|
|
# TODO: remove
|
|
|
|
"nix-serve.hq.c3d2.de" = hydraVhost;
|
|
|
|
};
|
|
|
|
};
|
2021-03-12 21:45:12 +01:00
|
|
|
};
|
2022-06-12 17:26:32 +02:00
|
|
|
|
2022-06-23 20:22:23 +02:00
|
|
|
sops.secrets."nix-serve/secretKey".mode = "0444";
|
|
|
|
|
2022-05-07 00:50:01 +02:00
|
|
|
systemd.services = {
|
|
|
|
hydra-evaluator.serviceConfig = {
|
2022-05-07 02:49:46 +02:00
|
|
|
CPUWeight = 2;
|
2022-06-23 23:00:14 +02:00
|
|
|
MemoryHigh = "96G";
|
|
|
|
MemoryMax = "96G";
|
|
|
|
MemorySwapMax = "96G";
|
2022-05-07 00:50:01 +02:00
|
|
|
};
|
2022-06-13 15:48:05 +02:00
|
|
|
nix-daemon.serviceConfig = {
|
2022-06-09 17:45:23 +02:00
|
|
|
LimitNOFILE = lib.mkForce 8192;
|
2022-05-07 02:49:46 +02:00
|
|
|
CPUWeight = 5;
|
2022-06-23 22:10:06 +02:00
|
|
|
MemoryHigh = "64G";
|
|
|
|
MemoryMax = "64G";
|
|
|
|
MemorySwapMax = "64G";
|
2022-06-12 17:26:32 +02:00
|
|
|
};
|
2022-05-07 02:49:46 +02:00
|
|
|
};
|
2021-03-12 21:45:12 +01:00
|
|
|
}
|