From f8764845b612c5963f73cf62c00726a9c45f9e4c Mon Sep 17 00:00:00 2001 From: emily Date: Thu, 21 Nov 2024 00:51:39 +0100 Subject: [PATCH] hydra: add even more power --- config/services/hydra/nix-config.nix | 17 +++-- .../build-worker-oci/ams/fly.toml | 24 +++++-- pkgs/build-worker-oci/cdg/fly.toml | 67 +++++++++++++++++++ 3 files changed, 97 insertions(+), 11 deletions(-) rename fly.toml => pkgs/build-worker-oci/ams/fly.toml (86%) create mode 100644 pkgs/build-worker-oci/cdg/fly.toml diff --git a/config/services/hydra/nix-config.nix b/config/services/hydra/nix-config.nix index 9933888..dda3efd 100644 --- a/config/services/hydra/nix-config.nix +++ b/config/services/hydra/nix-config.nix @@ -28,8 +28,8 @@ supportedFeatures = base ++ [ "gccarch-rv64imac" "gccarch-rv64imacfd" "gccarch-rv64gc" ]; 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}"; + ] ++ lib.forEach (lib.range 0 10) (num: { + hostName = "build-worker-${lib.fixedWidthNumber 2 num}"; sshUser = "root"; maxJobs = 2; speedFactor = 20; @@ -56,6 +56,7 @@ "schrodinger.kyouma.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKo7vZ6lS1wx76YsbAdhOsGcc20YMAW52ep8SZ/FCHDp"; "lab.nyantec.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIUePtVPtBK+CYosufbaGiMT4EVanti4V5t2Wg0g/Fy4"; "localhost".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPNVavo3YHVsrYwXRVISu7kDoknn+5inFGySn4azlB8P"; + "[build-worker-kyoumanet.fly.dev]:2200".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJUGzlilikAUfUGKXVCoTeDvPRoWUgDDkNU5WaRUBzls"; "[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"; @@ -64,15 +65,17 @@ "[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"; + "[build-worker-kyoumanet.fly-cdg.dev]:2209".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJGlQD/3fLn/Kyb7v0RIycHRcArGi75jURj803EMpW0S"; + "[build-worker-kyoumanet.fly-cdg.dev]:2210".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMQm1FSGBGdCR5f8MvBvdKM0M4yIQVnH1po7hHO5T1qz"; }; extraConfig = '' Host machine-0008.cloud-v.co Hostname machine.cloud-v.co Port 20008 - '' + lib.concatLines (lib.genList (i: '' - Host build-worker-0${toString (i + 1)} - Hostname build-worker-kyoumanet.fly.dev - Port 220${toString (i + 1)} - '') 8); + '' + lib.concatLines (lib.forEach (lib.range 0 8) (num: '' + Host build-worker-${lib.fixedWidthNumber 2 num} + Hostname build-worker-kyoumanet${lib.optionalString (num > 8) "-cdg"}.fly.dev + Port 220${lib.fixedWidthNumber 2 num} + '')); }; } diff --git a/fly.toml b/pkgs/build-worker-oci/ams/fly.toml similarity index 86% rename from fly.toml rename to pkgs/build-worker-oci/ams/fly.toml index b796763..635a20f 100644 --- a/fly.toml +++ b/pkgs/build-worker-oci/ams/fly.toml @@ -5,6 +5,7 @@ primary_region = 'ams' image = 'registry.fly.io/build-worker-kyoumanet:latest' [processes] + bw-00 = '/entrypoint.sh' bw-01 = '/entrypoint.sh' bw-02 = '/entrypoint.sh' bw-03 = '/entrypoint.sh' @@ -14,28 +15,34 @@ primary_region = 'ams' bw-07 = '/entrypoint.sh' bw-08 = '/entrypoint.sh' +[[mounts]] + source = 'bw00' + destination = '/mnt/data' + initial_size = '256GB' + processes = ['bw-00'] + [[mounts]] source = 'bw01' destination = '/mnt/data' - initial_size = '128GB' + initial_size = '256GB' processes = ['bw-01'] [[mounts]] source = 'bw02' destination = '/mnt/data' - initial_size = '128GB' + initial_size = '256GB' processes = ['bw-02'] [[mounts]] source = 'bw03' destination = '/mnt/data' - initial_size = '128GB' + initial_size = '256GB' processes = ['bw-03'] [[mounts]] source = 'bw04' destination = '/mnt/data' - initial_size = '128GB' + initial_size = '256GB' processes = ['bw-04'] [[mounts]] @@ -62,6 +69,15 @@ primary_region = 'ams' initial_size = '256GB' processes = ['bw-08'] +[[services]] + protocol = 'tcp' + internal_port = 2222 + auto_stop_machines = 'off' + processes = ['bw-00'] + + [[services.ports]] + port = 2200 + [[services]] protocol = 'tcp' internal_port = 2222 diff --git a/pkgs/build-worker-oci/cdg/fly.toml b/pkgs/build-worker-oci/cdg/fly.toml new file mode 100644 index 0000000..47a9062 --- /dev/null +++ b/pkgs/build-worker-oci/cdg/fly.toml @@ -0,0 +1,67 @@ +# fly.toml app configuration file generated for build-worker-kyoumanet-cdg on 2024-11-21T00:31:54+01:00 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = 'build-worker-kyoumanet-cdg' +primary_region = 'cdg' + +[build] + image = 'registry.fly.io/build-worker-kyoumanet:latest' + +[processes] + bw-09 = '/entrypoint.sh' + bw-10 = '/entrypoint.sh' + bw-11 = '/entrypoint.sh' + +[[mounts]] + source = 'bw09' + destination = '/mnt/data' + initial_size = '256GB' + processes = ['bw-09'] + +[[mounts]] + source = 'bw10' + destination = '/mnt/data' + initial_size = '256GB' + processes = ['bw-10'] + +[[mounts]] + source = 'bw11' + destination = '/mnt/data' + initial_size = '256GB' + processes = ['bw-11'] + +[[services]] + protocol = 'tcp' + internal_port = 2222 + auto_stop_machines = 'off' + processes = ['bw-09'] + + [[services.ports]] + port = 2209 + +[[services]] + protocol = 'tcp' + internal_port = 2222 + auto_stop_machines = 'off' + processes = ['bw-10'] + + [[services.ports]] + port = 2210 + +[[services]] + protocol = 'tcp' + internal_port = 2222 + auto_stop_machines = 'off' + processes = ['bw-11'] + + [[services.ports]] + port = 2211 + +[[restart]] + policy = 'never' + +[[vm]] + size = 'performance-16x' + memory = '96GB'