@cryptotaxi247 / infra / commits / 31985868

staging-hydra: switch queue runner to presigned uploads

Builders upload NARs directly to S3 via presigned URLs instead of streaming through the queue runner. This requires every builder to substitute from the forced cache, otherwise the queue runner rejects it, so add the staging cache as a substituter on all staging builders via a shared module.

Jörg Thalheim committed Jun 19, 2026 at 11:55 UTC 31985868a6a63e5f08677ea8182b390e24d69213
4 files changed +14
macs/common/ofborg-queue-builder.nix
+1
@@ -8,6 +8,7 @@
8 {
9 imports = [
10 inputs.hydra.darwinModules.builder
11 + ../../non-critical-infra/modules/hydra/staging-cache.nix
12 ];
13
14 services.hydra-queue-builder-dev = {
non-critical-infra/hosts/staging-hydra/hydra.nix
+2
@@ -126,6 +126,8 @@ in
126 remoteStoreAddr = [
127 "s3://nix-cache-staging?secret-key=${config.sops.secrets.signing-key.path}&ls-compression=br&log-compression=br"
128 ];
129 + usePresignedUploads = true;
130 + forcedSubstituters = [ "https://cache-staging.nixos.org" ];
131 };
132 };
133
non-critical-infra/modules/hydra/builder.nix
+1
@@ -15,6 +15,7 @@ in
15 {
16 imports = [
17 inputs.hydra.nixosModules.builder
18 + ./staging-cache.nix
19 ];
20
21 services.hydra-queue-builder-dev = {
non-critical-infra/modules/hydra/staging-cache.nix new
+10
@@ -0,0 +1,10 @@
1 +{
2 + # Substituter the staging queue runner forces builders onto for presigned
3 + # uploads (services.hydra-queue-runner-dev.settings.forcedSubstituters).
4 + nix.settings = {
5 + extra-substituters = [ "https://cache-staging.nixos.org" ];
6 + extra-trusted-public-keys = [
7 + "staging-hydra.nixos.org:XTeS2S4YgmVOVVTBazog3M6pSHoUKw0k5mCcqdmPeCU="
8 + ];
9 + };
10 +}