diff options
author | Vincent Ambo <mail@tazj.in> | 2021-12-09T13·45+0300 |
---|---|---|
committer | Vincent Ambo <mail@tazj.in> | 2021-12-10T07·32+0300 |
commit | 4870b1a2ff8cec7f7e0ce9be1cb25e0ba463e3d3 (patch) | |
tree | c7b18cf04cb71459ed9058f8015626e478e6e8df /ops/modules/gerrit-queue.nix | |
parent | a9dd719e7cc517c929ccc73e1ebad8c06596da64 (diff) |
feat(ops/modules): Add module for running gerrit-queue r/3172
This is not yet including the secret configuration for gerrit-queue, and just expects the secret (gerrit username & password) to be available in /etc/secrets. Change-Id: Ia465ef7f3f521c70d606d7fdeba9aa83c7e1b98b
Diffstat (limited to 'ops/modules/gerrit-queue.nix')
-rw-r--r-- | ops/modules/gerrit-queue.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ops/modules/gerrit-queue.nix b/ops/modules/gerrit-queue.nix new file mode 100644 index 000000000000..a4b073f8560b --- /dev/null +++ b/ops/modules/gerrit-queue.nix @@ -0,0 +1,51 @@ +# Configuration for the Gerrit autosubmit bot (//third_party/gerrit-queue) +{ depot, pkgs, config, lib, ... }: + +let + cfg = config.services.depot.gerrit-queue; + description = "gerrit-queue - autosubmit bot for Gerrit"; + mkStringOption = default: lib.mkOption { + inherit default; + type = lib.types.str; + }; +in { + options.services.depot.gerrit-queue = { + enable = lib.mkEnableOption description; + gerritUrl = mkStringOption "https://cl.tvl.fyi"; + gerritProject = mkStringOption "depot"; + gerritBranch = mkStringOption "canon"; + + interval = with lib; mkOption { + type = types.int; + default = 60; + description = "Interval (in seconds) for submit queue checks"; + }; + + secretsFile = with lib; mkOption { + description = "Path to a systemd EnvironmentFile containing secrets"; + default = "/run/agenix/gerrit-queue"; + type = types.str; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.services.gerrit-queue = { + inherit description; + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + ExecStart = "${depot.third_party.gerrit-queue}/bin/gerrit-queue"; + DynamicUser = true; + Restart = "always"; + EnvironmentFile = cfg.secretsFile; + }; + + environment = { + GERRIT_URL = cfg.gerritUrl; + GERRIT_PROJECT = cfg.gerritProject; + GERRIT_BRANCH = cfg.gerritBranch; + SUBMIT_QUEUE_TRIGGER_INTERVAL = toString cfg.interval; + }; + }; + }; +} |