@cryptotaxi247 / infra-1 / commits / d8de64e7

Add hydra-provisioner configuration

Eelco Dolstra committed Aug 27, 2015 at 19:47 UTC d8de64e73f1faf819a81b4c40115ca0e457e9c48
2 files changed +59
hydra-provisioner/conf.nix new
+17
@@ -0,0 +1,17 @@
1 +{
2 +
3 + tag = "hydra-provisioned-nixos-org";
4 +
5 + statusCommand = [ "ssh" "-x" "root@lucifer" "PGPASSFILE=/var/lib/hydra/pgpass-queue-runner" "hydra-queue-runner" "--status" ];
6 + updateCommand = [ "ssh" "-x" "root@lucifer" "cat > /var/lib/hydra/provisioned.machines" ];
7 +
8 + systemTypes.x86_64-linux = {
9 + nixopsExpr = builtins.toPath ./nixops.nix;
10 + maxMachines = 12;
11 + ignoredRunnables = 250;
12 + runnablesPerMachine = 50;
13 + maxJobs = 4;
14 + sshKey = "/var/lib/hydra/queue-runner/.ssh/id_buildfarm";
15 + };
16 +
17 +}
hydra-provisioner/nixops.nix new
+42
@@ -0,0 +1,42 @@
1 +{ type, tag, ... }:
2 +
3 +let
4 + region = "eu-west-1";
5 + accessKeyId = "lb-nixos";
6 +in
7 +
8 +{
9 +
10 + resources.ec2KeyPairs.default =
11 + { inherit region accessKeyId;
12 + };
13 +
14 + machine =
15 + { config, lib, pkgs, resources, ... }:
16 + {
17 + deployment.targetEnv = "ec2";
18 + deployment.ec2.accessKeyId = accessKeyId;
19 + deployment.ec2.region = region;
20 + deployment.ec2.instanceType = "m3.xlarge";
21 + deployment.ec2.spotInstancePrice = 10;
22 + deployment.ec2.keyPair = resources.ec2KeyPairs.default;
23 + deployment.ec2.securityGroups = [ "public-ssh" ];
24 + deployment.ec2.tags.Name = "Hydra Builder";
25 + deployment.ec2.ebsInitialRootDiskSize = 100;
26 + deployment.owners = [ "eelco.dolstra@logicblox.com" ];
27 +
28 + imports = [ <nixpkgs/nixos/modules/profiles/minimal.nix> ];
29 +
30 + users.extraUsers.root.openssh.authorizedKeys.keys =
31 + [ ''command="nix-store --serve --write" ${builtins.readFile ~/.ssh/id_dsa.pub} # for testing''
32 + ''command="nix-store --serve --write" ssh-dss AAAAB3NzaC1kc3MAAACBAMHRjGSDaBp4Z30JF4S9ApabBCpdr57Ad0aD9oH2A/WEFnWYQSAzK4E/HHD2DV2XP1stNkZ1ks2v3F4Yu/veR+qVlUWbJW1RIIfuQgkG44K0R3C2qx4BAZUVYzju1NVCJbBOO6ipVY9cfmpokV52HZFhP/2HocTNLoav3F0AsbbJAAAAFQDaJiQdpJBEa4Wr5FfVl1kYqmQZJwAAAIEAwbern5XL+SNIMa+sJ3CBhrWyYExYWiUbdmhQEfyEAUmoPsEr1qpb+0WREic9Nrxz48QWZDK5xMvzZyQEkuAMJUBWcdm12rME7WMvg7OZGr9DADjAtfMfj3Ui2XvOuQ3ia/OTsMGkQTDWnkOM9Ni128SNSl9urFBlXATdGvo+468AAACBAK8s6LddhhkRqsF/l/L2ooS8c8A1rTFWAOy3/sgXFNvMyS/Mig2p966xRrRHr7Bc+H2SuKEE5WmLCXqymgxLHhrFU4zm/W/ej1yB1CAThd4xUfgJu4touJROjvcD1zzlmLeat0fp2k5mCuiLKcTKi0vxKWiiopF9nvBBK+7ODPC7 buildfarm@nixos''
33 + ];
34 +
35 + nix.package = pkgs.nixUnstable;
36 +
37 + nix.gc.automatic = true;
38 + nix.gc.dates = "*:0/30";
39 + nix.gc.options = ''--max-freed "$((15 * 1024**3 - 1024 * $(df -P -k /nix/store | tail -n 1 | ${pkgs.gawk}/bin/awk '{ print $4 }')))"'';
40 + };
41 +
42 +}