Skip to content

Commit 42af336

Browse files
committed
imp: add local host builder
1 parent 58bc921 commit 42af336

File tree

3 files changed

+95
-1
lines changed

3 files changed

+95
-1
lines changed

nix/metal/bitteProfile/default.nix

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ in {
8585
path = "/nix";
8686
read_only = false;
8787
};
88-
});
88+
})
89+
++ lib.optional (node_class == "test") ./local-builder.nix;
8990
}
9091
extraConfig;
9192
# -------------------------
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"data": "ENC[AES256_GCM,data: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,iv:ATdkh020l3ShINzlBggMUFEvb3CATzU4kzmaE6NzTXw=,tag:jRpl20QAz/BfVNF9p0pISw==,type:str]",
3+
"sops": {
4+
"kms": [
5+
{
6+
"arn": "arn:aws:kms:eu-central-1:074718059002:key/5bb7cc1b-151c-4841-bcb3-622bc8df4b5a",
7+
"created_at": "2022-12-22T22:40:39Z",
8+
"enc": "AQICAHg3OCn+/PAIR22bdMZmmm7xlk3KpM4n+haJ8Ph2IaYRgwGKikN93Yo9D8a5td4E4sENAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMHotHxAKzVt6+5ib/AgEQgDvkL7ZLqkgHKfdaJCEZl9pzHqfyKhd8I7htfyrWiEICh0yGa/iep8hK+RNNRDaem2RuH7RGfkWHEBIoGg==",
9+
"aws_profile": ""
10+
}
11+
],
12+
"gcp_kms": null,
13+
"azure_kv": null,
14+
"hc_vault": null,
15+
"age": null,
16+
"lastmodified": "2022-12-22T22:40:39Z",
17+
"mac": "ENC[AES256_GCM,data:JTR431RbhtOB0kQmQorGBGaz2owGD2PUQNEmWyS28JcAkrYnB7Vf695n0zIQUKoAOACUQeGO3C1u+fvpnGuSuDhgmxi63r1pquL+iHyJn2Gqya62QMj43imN7ohUSBIzIETJtC+U1xU9UcIv12Jg2VqLNZVjQaublZoFtQTUenE=,iv:eTWgb/Yq95GuHNrZxCF6aTbTPmloeVjrtRNK7jKSscs=,tag:ox5Ka8Km69Xia53E3ABvXQ==,type:str]",
18+
"pgp": null,
19+
"unencrypted_suffix": "_unencrypted",
20+
"version": "3.7.3"
21+
}
22+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{
2+
config,
3+
pkgs,
4+
lib,
5+
...
6+
}: {
7+
profiles.auxiliaries.builder.enable = false;
8+
9+
nix = {
10+
buildMachines = let
11+
mkDarwinBuilder = name: mandatoryFeatures: {
12+
inherit mandatoryFeatures;
13+
hostName = name;
14+
maxJobs = 4;
15+
speedFactor = 1;
16+
sshKey = "/etc/nix/darwin-builder-key";
17+
sshUser = "builder";
18+
systems = ["x86_64-darwin"];
19+
supportedFeatures = ["big-parallel"];
20+
};
21+
in [
22+
(mkDarwinBuilder "mm1-builder" [])
23+
(mkDarwinBuilder "mm2-builder" [])
24+
(mkDarwinBuilder "mm1-signer" ["signer"])
25+
(mkDarwinBuilder "mm2-signer" ["signer"])
26+
];
27+
28+
distributedBuilds = true;
29+
30+
trustedUsers = ["root" "builder"];
31+
32+
extraOptions = ''
33+
builders = @/etc/nix/machines
34+
35+
# Constrain Linux builds to 4 hrs
36+
timeout = 14400
37+
38+
connect-timeout = 10
39+
'';
40+
};
41+
42+
programs.ssh.extraConfig = let
43+
mkDarwinBuilderSsh = name: ip: ''
44+
Host ${name}
45+
Hostname ${ip}
46+
Port 22
47+
PubkeyAcceptedKeyTypes ecdsa-sha2-nistp256,ssh-ed25519,ssh-rsa
48+
IdentityFile /etc/nix/darwin-builder-key
49+
StrictHostKeyChecking accept-new
50+
ControlMaster auto
51+
ControlPath ~/.ssh/master-%r@%n:%p
52+
ControlPersist 1m
53+
'';
54+
in
55+
builtins.concatStringsSep "\n" [
56+
(mkDarwinBuilderSsh "mm1-builder" "10.10.0.1")
57+
(mkDarwinBuilderSsh "mm2-builder" "10.10.0.2")
58+
(mkDarwinBuilderSsh "mm1-signer" "10.10.0.101")
59+
(mkDarwinBuilderSsh "mm2-signer" "10.10.0.102")
60+
];
61+
62+
secrets.install.darwin-secret-key = {
63+
inputType = "binary";
64+
outputType = "binary";
65+
source = config.secrets.encryptedRoot + "/darwin-builder-key";
66+
target = "/etc/nix/darwin-builder-key";
67+
script = ''
68+
chmod 0600 /etc/nix/darwin-builder-key
69+
'';
70+
};
71+
}

0 commit comments

Comments
 (0)