about summary refs log tree commit diff
path: root/nixos/modules/virtualisation
diff options
context:
space:
mode:
authordavidak <git@davidak.de>2019-07-31 16:19:18 +0200
committerdavidak <git@davidak.de>2019-08-28 14:54:51 +0200
commiteba686ddfad91d8f59d61e3ca0e26f1360ff9a81 (patch)
tree242d2159bf51c4255ce64c5c07533ad72cf30759 /nixos/modules/virtualisation
parentbe075ed348dfbddeefdb8cdd57fc5cb443a4337e (diff)
downloadnixlib-eba686ddfad91d8f59d61e3ca0e26f1360ff9a81.tar
nixlib-eba686ddfad91d8f59d61e3ca0e26f1360ff9a81.tar.gz
nixlib-eba686ddfad91d8f59d61e3ca0e26f1360ff9a81.tar.bz2
nixlib-eba686ddfad91d8f59d61e3ca0e26f1360ff9a81.tar.lz
nixlib-eba686ddfad91d8f59d61e3ca0e26f1360ff9a81.tar.xz
nixlib-eba686ddfad91d8f59d61e3ca0e26f1360ff9a81.tar.zst
nixlib-eba686ddfad91d8f59d61e3ca0e26f1360ff9a81.zip
nixos-containers: add TimeoutStartSec option
Default is now 1m instead of global default of 15sec. It is also
configurable.

Fixes issue where start of many containers (40+) fail
https://github.com/NixOS/nixpkgs/issues/65001
Diffstat (limited to 'nixos/modules/virtualisation')
-rw-r--r--nixos/modules/virtualisation/containers.nix17
1 files changed, 17 insertions, 0 deletions
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index b65374c92577..b61558b22019 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -256,6 +256,10 @@ let
     RestartForceExitStatus = "133";
     SuccessExitStatus = "133";
 
+    # Some containers take long to start
+    # especially when you automatically start many at once
+    TimeoutStartSec = cfg.timeoutStartSec;
+
     Restart = "on-failure";
 
     Slice = "machine.slice";
@@ -423,6 +427,7 @@ let
       extraVeths = {};
       additionalCapabilities = [];
       ephemeral = false;
+      timeoutStartSec = "15s";
       allowedDevices = [];
       hostAddress = null;
       hostAddress6 = null;
@@ -595,6 +600,18 @@ in
               '';
             };
 
+		    timeoutStartSec = mkOption {
+		      type = types.str;
+		      default = "1min";
+		      description = ''
+		        Time for the container to start. In case of a timeout,
+		        the container processes get killed.
+		        See <citerefentry><refentrytitle>systemd.time</refentrytitle>
+		        <manvolnum>7</manvolnum></citerefentry>
+		        for more information about the format.
+		       '';
+		    };
+
             bindMounts = mkOption {
               type = with types; loaOf (submodule bindMountOpts);
               default = {};