From 84285848161707ef77995a0dac3232fa805d1a9e 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/hosts/crime/configuration.nix | 4 +- config/services/hydra/nix-config.nix | 17 +++-- flake.lock | 24 +++++++ flake.nix | 5 ++ .../build-worker-oci/ams/fly.toml | 24 +++++-- pkgs/build-worker-oci/cdg/fly.toml | 67 +++++++++++++++++++ 6 files changed, 129 insertions(+), 12 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/hosts/crime/configuration.nix b/config/hosts/crime/configuration.nix index 5ab41bc..75bc6d5 100644 --- a/config/hosts/crime/configuration.nix +++ b/config/hosts/crime/configuration.nix @@ -1,4 +1,4 @@ -{ ... }: { +{ inputs, ... }: { imports = [ ../../common ../../users/lucy @@ -8,6 +8,7 @@ ../../services/arrs ../../services/jellyfin.nix ../../services/nginx.nix + inputs.oth.nixosModules.default ]; networking.hostName = "crime"; systemd.network.networks."98-eth-default" = { @@ -24,6 +25,7 @@ "/var/lib/radarr" "/var/lib/sonarr" "/var/lib/private/prowlarr" + "/home" ]; }; } diff --git a/config/services/hydra/nix-config.nix b/config/services/hydra/nix-config.nix index 9933888..b6a6353 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-cdg.fly.dev]:2209".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJGlQD/3fLn/Kyb7v0RIycHRcArGi75jURj803EMpW0S"; + "[build-worker-kyoumanet-cdg.fly.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 10) (num: '' + Host build-worker-${lib.fixedWidthNumber 2 num} + Hostname build-worker-kyoumanet${lib.optionalString (num > 8) "-cdg"}.fly.dev + Port 22${lib.fixedWidthNumber 2 num} + '')); }; } diff --git a/flake.lock b/flake.lock index dc457d7..ae6feb8 100644 --- a/flake.lock +++ b/flake.lock @@ -1151,6 +1151,29 @@ "type": "github" } }, + "oth": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1732215904, + "narHash": "sha256-bXXoyQcVMULYOj1KlzbquUyMTyByzmLatIgm0ra/7sk=", + "ref": "refs/heads/main", + "rev": "847cc8493f7f44bd5ada0283d6b96457f4ee5a9b", + "revCount": 1, + "type": "git", + "url": "ssh://forgejo@woof.rip/emily/oth.git" + }, + "original": { + "type": "git", + "url": "ssh://forgejo@woof.rip/emily/oth.git" + } + }, "pre-commit-hooks": { "flake": false, "locked": { @@ -1187,6 +1210,7 @@ "nixos-needsreboot": "nixos-needsreboot", "nixpkgs": "nixpkgs_4", "nixvim": "nixvim", + "oth": "oth", "sops-nix": "sops-nix", "stylix": "stylix" } diff --git a/flake.nix b/flake.nix index 583df84..ef20154 100644 --- a/flake.nix +++ b/flake.nix @@ -64,6 +64,11 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; + oth = { + url = "git+ssh://forgejo@woof.rip/emily/oth.git"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; + }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; 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'