From f3b741f5a0f427caf6df0d708daf1bdd77f1ddab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ryan4yin=20=7C=20=E4=BA=8C=E8=8A=B1?= Date: Sun, 1 Nov 2026 04:44:43 -0600 Subject: [PATCH] feat(builders): enable aquamarine on remaining physical hosts (#500) Enable the existing remote-builder module on shoryu, shushou and youko, and authorize their SSH host keys on aquamarine. Kana and Ruby are VM guests with no need to build; leave their local store and build behavior unchanged. Assisted-by: DeepSeek Harness (deepseek-flash) --- hosts/12kingdoms-shoryu/default.nix | 4 ++++ hosts/12kingdoms-shushou/default.nix | 4 ++++ hosts/12kingdoms-youko/default.nix | 4 ++++ .../tests/remote-builders/expected.nix | 4 ++++ .../tests/remote-builders/expr.nix | 14 ++++++++++++ .../tests/remote-builders/expected.nix | 16 ++++++++++++++ .../tests/remote-builders/expr.nix | 22 +++++++++++++++++++ vars/default.nix | 3 +++ 8 files changed, 71 insertions(+) create mode 100644 outputs/aarch64-linux/tests/remote-builders/expected.nix create mode 100644 outputs/aarch64-linux/tests/remote-builders/expr.nix create mode 100644 outputs/x86_64-linux/tests/remote-builders/expected.nix create mode 100644 outputs/x86_64-linux/tests/remote-builders/expr.nix diff --git a/hosts/12kingdoms-shoryu/default.nix b/hosts/12kingdoms-shoryu/default.nix index f300a827..f3418688 100644 --- a/hosts/12kingdoms-shoryu/default.nix +++ b/hosts/12kingdoms-shoryu/default.nix @@ -24,6 +24,10 @@ in coreModule ]; + # Use the shared Aquamarine builder for heavy derivations; local builds + # remain available as a fallback. + modules.remote-builders.enable = true; + modules.btrbk.enable = true; modules.security.audit.enable = true; diff --git a/hosts/12kingdoms-shushou/default.nix b/hosts/12kingdoms-shushou/default.nix index d04f10db..83566c72 100644 --- a/hosts/12kingdoms-shushou/default.nix +++ b/hosts/12kingdoms-shushou/default.nix @@ -23,6 +23,10 @@ in coreModule ]; + # Use the shared Aquamarine builder for heavy derivations; local builds + # remain available as a fallback. + modules.remote-builders.enable = true; + modules.btrbk.enable = true; modules.security.audit.enable = true; diff --git a/hosts/12kingdoms-youko/default.nix b/hosts/12kingdoms-youko/default.nix index c3095f12..d51ee170 100644 --- a/hosts/12kingdoms-youko/default.nix +++ b/hosts/12kingdoms-youko/default.nix @@ -57,6 +57,10 @@ in ]; }; + # Use the shared Aquamarine builder for heavy derivations; local builds + # remain available as a fallback. + modules.remote-builders.enable = true; + modules.btrbk.enable = true; modules.security.audit.enable = true; diff --git a/outputs/aarch64-linux/tests/remote-builders/expected.nix b/outputs/aarch64-linux/tests/remote-builders/expected.nix new file mode 100644 index 00000000..158b6392 --- /dev/null +++ b/outputs/aarch64-linux/tests/remote-builders/expected.nix @@ -0,0 +1,4 @@ +{ + distributedBuilds = true; + aquamarineConfigured = true; +} diff --git a/outputs/aarch64-linux/tests/remote-builders/expr.nix b/outputs/aarch64-linux/tests/remote-builders/expr.nix new file mode 100644 index 00000000..4407fd99 --- /dev/null +++ b/outputs/aarch64-linux/tests/remote-builders/expr.nix @@ -0,0 +1,14 @@ +{ + outputs, + ... +}: +let + name = "shoukei-niri"; + cfg = outputs.nixosConfigurations.${name}.config; +in +{ + distributedBuilds = cfg.nix.distributedBuilds; + aquamarineConfigured = builtins.any ( + machine: machine.hostName == "aquamarine" && machine.sshUser == "root" + ) cfg.nix.buildMachines; +} diff --git a/outputs/x86_64-linux/tests/remote-builders/expected.nix b/outputs/x86_64-linux/tests/remote-builders/expected.nix new file mode 100644 index 00000000..40b5a912 --- /dev/null +++ b/outputs/x86_64-linux/tests/remote-builders/expected.nix @@ -0,0 +1,16 @@ +{ + lib, + ... +}: +let + yes = lib.genAttrs [ + "ai-niri" + "shoryu" + "shushou" + "youko" + ] (_: true); +in +{ + distributedBuilds = yes; + aquamarineConfigured = yes; +} diff --git a/outputs/x86_64-linux/tests/remote-builders/expr.nix b/outputs/x86_64-linux/tests/remote-builders/expr.nix new file mode 100644 index 00000000..fab86b74 --- /dev/null +++ b/outputs/x86_64-linux/tests/remote-builders/expr.nix @@ -0,0 +1,22 @@ +{ + lib, + outputs, + ... +}: +let + builderHosts = [ + "ai-niri" + "shoryu" + "shushou" + "youko" + ]; + cfg = name: outputs.nixosConfigurations.${name}.config; + usesAquamarine = + name: + builtins.any (machine: machine.hostName == "aquamarine" && machine.sshUser == "root") + (cfg name).nix.buildMachines; +in +{ + distributedBuilds = lib.genAttrs builderHosts (name: (cfg name).nix.distributedBuilds); + aquamarineConfigured = lib.genAttrs builderHosts usesAquamarine; +} diff --git a/vars/default.nix b/vars/default.nix index 90f81d4b..91542e0b 100644 --- a/vars/default.nix +++ b/vars/default.nix @@ -38,5 +38,8 @@ remoteBuilderClientKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINHZtzeaQyXwuRMLzoOAuTu8P9bu5yc5MBwo5LI3iWBV root@ai" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILDkbOwOeuAem8BKbyTDliRiTfHVAFdiVpAKh1bhs2s0 root@shoukei" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGSSw4Oa8CaAeYXq2+O/SHHICaoUTFTGYjW5R9MzZ9Nj root@shoryu" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK4Po3tzTPVKEE5fAk4RQfhTvA4h+AurnkEiM7RYdND9 root@shushou" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEs8b3CmxM+utXZVKvJBssXBupBXvvzjHP40HcY7PSyZ root@youko" ]; }