diff options
author | Vincent Ambo <mail@tazj.in> | 2021-04-09T17·04+0200 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2021-04-09T19·08+0000 |
commit | c0213702136221bc38b917e0def2fbe3d781761b (patch) | |
tree | 06e5544930b8f575beb8e29d5a1def6d8df47e79 | |
parent | 5d71617eda151d92a417ae71010068be4c6af1e0 (diff) |
refactor(whitby): Extract Buildkite agents into a module r/2456
There will be more Buildkite-agent specific configuration, and it's already more than just the module setup, so extracting this makes sense. Change-Id: I56ce205c0cb4365317ed7ed5f2d525a0b425b861 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2906 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: sterni <sternenseemann@systemli.org>
-rw-r--r-- | ops/nixos/tvl-buildkite.nix | 36 | ||||
-rw-r--r-- | ops/nixos/whitby/default.nix | 21 |
2 files changed, 41 insertions, 16 deletions
diff --git a/ops/nixos/tvl-buildkite.nix b/ops/nixos/tvl-buildkite.nix new file mode 100644 index 000000000000..48515f6c80c2 --- /dev/null +++ b/ops/nixos/tvl-buildkite.nix @@ -0,0 +1,36 @@ +# Configuration for the TVL buildkite agents. +{ config, depot, lib, ... }: + +let + cfg = config.services.depot.buildkite; + agents = lib.range 1 cfg.agentCount; + description = "Buildkite agents for TVL"; + + # All Buildkite hooks are actually besadii, but it's being invoked + # with different names. + buildkiteHooks = depot.third_party.runCommandNoCC "buildkite-hooks" {} '' + mkdir -p $out/bin + ln -s ${depot.ops.besadii}/bin/besadii $out/bin/post-command + ''; +in { + options.services.depot.buildkite = { + enable = lib.mkEnableOption description; + agentCount = lib.mkOption { + type = lib.types.int; + description = "Number of Buildkite agents to launch"; + }; + }; + + config = lib.mkIf cfg.enable { + # Run the Buildkite agents using the default upstream module. + services.buildkite-agents = builtins.listToAttrs (map (n: rec { + name = "whitby-${toString n}"; + value = { + inherit name; + enable = true; + tokenPath = "/etc/secrets/buildkite-agent-token"; + hooks.post-command = "${buildkiteHooks}/bin/post-command"; + }; + }) agents); + }; +} diff --git a/ops/nixos/whitby/default.nix b/ops/nixos/whitby/default.nix index f7d8f4ef4a44..3c1c1f14bf51 100644 --- a/ops/nixos/whitby/default.nix +++ b/ops/nixos/whitby/default.nix @@ -5,13 +5,6 @@ let inherit (lib) range; nixpkgs = import depot.third_party.nixpkgsSrc {}; - - # All Buildkite hooks are actually besadii, but it's being invoked - # with different names. - buildkiteHooks = depot.third_party.runCommandNoCC "buildkite-hooks" {} '' - mkdir -p $out/bin - ln -s ${depot.ops.besadii}/bin/besadii $out/bin/post-command - ''; in lib.fix(self: { imports = [ "${depot.depotPath}/ops/nixos/clbot.nix" @@ -21,6 +14,7 @@ in lib.fix(self: { "${depot.depotPath}/ops/nixos/paroxysm.nix" "${depot.depotPath}/ops/nixos/smtprelay.nix" "${depot.depotPath}/ops/nixos/sourcegraph.nix" + "${depot.depotPath}/ops/nixos/tvl-buildkite.nix" "${depot.depotPath}/ops/nixos/tvl-slapd/default.nix" "${depot.depotPath}/ops/nixos/tvl-sso/default.nix" "${depot.depotPath}/ops/nixos/www/b.tvl.fyi.nix" @@ -194,15 +188,10 @@ in lib.fix(self: { }; # Run a handful of Buildkite agents to support parallel builds. - services.buildkite-agents = listToAttrs (map (n: rec { - name = "whitby-${toString n}"; - value = { - inherit name; - enable = true; - tokenPath = "/etc/secrets/buildkite-agent-token"; - hooks.post-command = "${buildkiteHooks}/bin/post-command"; - }; - }) (range 1 32)); + services.depot.buildkite = { + enable = true; + agentCount = 32; + }; # Start a local SMTP relay to Gmail (used by gerrit) services.depot.smtprelay = { |