diff options
author | Sandro <sandro.jaeckel@gmail.com> | 2024-03-13 13:57:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-13 13:57:12 +0100 |
commit | db55012fa338bf40457d4d226b22559863d16b01 (patch) | |
tree | 16ddedb8d345a983cd6674deb53b574b35286389 /nixos/modules | |
parent | fe9e7d313a4320ec3e91f418090ff0a75fe80e20 (diff) | |
parent | 6cd7477733aa5eeb9742ac4ccea3c53c4b6f5020 (diff) | |
download | nixlib-db55012fa338bf40457d4d226b22559863d16b01.tar nixlib-db55012fa338bf40457d4d226b22559863d16b01.tar.gz nixlib-db55012fa338bf40457d4d226b22559863d16b01.tar.bz2 nixlib-db55012fa338bf40457d4d226b22559863d16b01.tar.lz nixlib-db55012fa338bf40457d4d226b22559863d16b01.tar.xz nixlib-db55012fa338bf40457d4d226b22559863d16b01.tar.zst nixlib-db55012fa338bf40457d4d226b22559863d16b01.zip |
Merge pull request #291455 from SuperSandro2000/hydra-starman-worker
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/services/continuous-integration/hydra/default.nix | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix index b1d44e67658b..10e1f0532c84 100644 --- a/nixos/modules/services/continuous-integration/hydra/default.nix +++ b/nixos/modules/services/continuous-integration/hydra/default.nix @@ -178,6 +178,24 @@ in description = lib.mdDoc "Whether to run the server in debug mode."; }; + maxServers = mkOption { + type = types.int; + default = 25; + description = lib.mdDoc "Maximum number of starman workers to spawn."; + }; + + minSpareServers = mkOption { + type = types.int; + default = 4; + description = lib.mdDoc "Minimum number of spare starman workers to keep."; + }; + + maxSpareServers = mkOption { + type = types.int; + default = 5; + description = lib.mdDoc "Maximum number of spare starman workers to keep."; + }; + extraConfig = mkOption { type = types.lines; description = lib.mdDoc "Extra lines for the Hydra configuration."; @@ -224,6 +242,16 @@ in ###### implementation config = mkIf cfg.enable { + assertions = [ + { + assertion = cfg.maxServers != 0 && cfg.maxSpareServers != 0 && cfg.minSpareServers != 0; + message = "services.hydra.{minSpareServers,maxSpareServers,minSpareServers} cannot be 0"; + } + { + assertion = cfg.minSpareServers < cfg.maxSpareServers; + message = "services.hydra.minSpareServers cannot be bigger than servives.hydra.maxSpareServers"; + } + ]; users.groups.hydra = { gid = config.ids.gids.hydra; @@ -258,7 +286,7 @@ in using_frontend_proxy = 1 base_uri = ${cfg.hydraURL} notification_sender = ${cfg.notificationSender} - max_servers = 25 + max_servers = ${toString cfg.maxServers} ${optionalString (cfg.logo != null) '' hydra_logo = ${cfg.logo} ''} @@ -359,8 +387,8 @@ in serviceConfig = { ExecStart = "@${hydra-package}/bin/hydra-server hydra-server -f -h '${cfg.listenHost}' " - + "-p ${toString cfg.port} --max_spare_servers 5 --max_servers 25 " - + "--max_requests 100 ${optionalString cfg.debugServer "-d"}"; + + "-p ${toString cfg.port} --min_spare_servers ${toString cfg.minSpareServers} --max_spare_servers ${toString cfg.maxSpareServers} " + + "--max_servers ${toString cfg.maxServers} --max_requests 100 ${optionalString cfg.debugServer "-d"}"; User = "hydra-www"; PermissionsStartOnly = true; Restart = "always"; |