diff --git a/nixos/modules/services/continuous-integration/buildkite-agent.nix b/nixos/modules/services/continuous-integration/buildkite-agent.nix index 3c9c92bf052..49160b43c61 100644 --- a/nixos/modules/services/continuous-integration/buildkite-agent.nix +++ b/nixos/modules/services/continuous-integration/buildkite-agent.nix @@ -29,6 +29,8 @@ let ${concatStringsSep "\n" (mapAttrsToList mkHookEntry (filterAttrs (n: v: v != null) cfg.hooks))} ''; + defaultUser = "buildkite-agent"; + in { @@ -56,6 +58,15 @@ in type = types.listOf types.package; }; + user = mkOption { + type = types.str; + default = defaultUser; + description = '' + Set this option when you want to run the buildkite agent as something else + than the default user "buildkite-agent". + ''; + }; + tokenPath = mkOption { type = types.path; description = '' @@ -185,14 +196,14 @@ in }; config = mkIf config.services.buildkite-agent.enable { - users.users.buildkite-agent = - { name = "buildkite-agent"; - home = cfg.dataDir; - createHome = true; - description = "Buildkite agent user"; - extraGroups = [ "keys" ]; - isSystemUser = true; - }; + users.users.buildkite-agent = mkIf (cfg.user == defaultUser) { + name = "buildkite-agent"; + home = cfg.dataDir; + createHome = true; + description = "Buildkite agent user"; + extraGroups = [ "keys" ]; + isSystemUser = true; + }; environment.systemPackages = [ cfg.package ]; @@ -230,7 +241,7 @@ in serviceConfig = { ExecStart = "${cfg.package}/bin/buildkite-agent start --config /var/lib/buildkite-agent/buildkite-agent.cfg"; - User = "buildkite-agent"; + User = cfg.user; RestartSec = 5; Restart = "on-failure"; TimeoutSec = 10;