about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoman Sharapov <dev.Sharapov.Roman@dev.bwater.com>2020-07-13 13:07:20 -0400
committerRoman Sharapov <dev.Sharapov.Roman@dev.bwater.com>2020-07-13 13:07:20 -0400
commitd53d13b6ee426932c8a73eb18e56082d1873ff27 (patch)
tree5075f4fe21ba785a7db67f676aaa5c19309f2867
parent21104fcabdb61366db4f9ac9cef0880e813c5ee0 (diff)
downloadnixlib-d53d13b6ee426932c8a73eb18e56082d1873ff27.tar
nixlib-d53d13b6ee426932c8a73eb18e56082d1873ff27.tar.gz
nixlib-d53d13b6ee426932c8a73eb18e56082d1873ff27.tar.bz2
nixlib-d53d13b6ee426932c8a73eb18e56082d1873ff27.tar.lz
nixlib-d53d13b6ee426932c8a73eb18e56082d1873ff27.tar.xz
nixlib-d53d13b6ee426932c8a73eb18e56082d1873ff27.tar.zst
nixlib-d53d13b6ee426932c8a73eb18e56082d1873ff27.zip
nixos/buildbot: enable configurable keepalive for buildbot worker
In the current implementation, there's no possibility to modify the default
parameter for keepalive. This is a number that indicates how frequently
keepalive messages should be sent from the worker to the buildmaster,
expressed in seconds. The default (600) causes a message to be sent to
the buildmaster at least once every 10 minutes.

If the worker is behind a NAT box or stateful firewall, these messages
may help to keep the connection alive: some NAT boxes tend to forget about
a connection if it has not been used in a while. When this happens, the
buildmaster will think that the worker has disappeared, and builds will
time out. Meanwhile the worker will not realize than anything is wrong.
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/worker.nix11
1 files changed, 10 insertions, 1 deletions
diff --git a/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixos/modules/services/continuous-integration/buildbot/worker.nix
index 52f24b8cee3c..7b8a35f54bfa 100644
--- a/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -29,7 +29,7 @@ let
 
     with open('${cfg.workerPassFile}', 'r', encoding='utf-8') as passwd_file:
         passwd = passwd_file.read().strip('\r\n')
-    keepalive = 600
+    keepalive = ${toString cfg.keepalive}
     umask = None
     maxdelay = 300
     numcpus = None
@@ -116,6 +116,15 @@ in {
         description = "Specifies the Buildbot Worker connection string.";
       };
 
+      keepalive = mkOption {
+        default = 600;
+        type = types.int;
+        description = "
+          This is a number that indicates how frequently keepalive messages should be sent
+          from the worker to the buildmaster, expressed in seconds.
+        ";
+      };
+
       package = mkOption {
         type = types.package;
         default = pkgs.python3Packages.buildbot-worker;