From 7514f00733cbdb8f61bec5e189d449c61c801de8 Mon Sep 17 00:00:00 2001 From: ThinkChaos Date: Mon, 9 Nov 2020 19:50:36 +0100 Subject: [PATCH 1/4] nixos/k3s: Update service to match upstream Fixes race between k3s and network. --- nixos/modules/services/cluster/k3s/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix index 2e8bf20a68f..fe9f43f6426 100644 --- a/nixos/modules/services/cluster/k3s/default.nix +++ b/nixos/modules/services/cluster/k3s/default.nix @@ -78,7 +78,8 @@ in systemd.services.k3s = { description = "k3s service"; - after = mkIf cfg.docker [ "docker.service" ]; + after = if cfg.docker then "docker.service" else "network-online.service"; + wants = "network-online.service"; wantedBy = [ "multi-user.target" ]; serviceConfig = { # See: https://github.com/rancher/k3s/blob/dddbd16305284ae4bd14c0aade892412310d7edc/install.sh#L197 @@ -87,6 +88,10 @@ in Delegate = "yes"; Restart = "always"; RestartSec = "5s"; + LimitNOFILE = 1048576; + LimitNPROC = "infinity"; + LimitCORE = "infinity"; + TasksMax = "infinity"; ExecStart = concatStringsSep " \\\n " ( [ "${cfg.package}/bin/k3s ${cfg.role}" From acb845dd1137228eee76f9486796aebda832c3b5 Mon Sep 17 00:00:00 2001 From: ThinkChaos Date: Mon, 9 Nov 2020 22:17:39 +0100 Subject: [PATCH 2/4] nixos/k3s: Add dependency on firewall.service --- nixos/modules/services/cluster/k3s/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix index fe9f43f6426..23cd0169031 100644 --- a/nixos/modules/services/cluster/k3s/default.nix +++ b/nixos/modules/services/cluster/k3s/default.nix @@ -78,8 +78,8 @@ in systemd.services.k3s = { description = "k3s service"; - after = if cfg.docker then "docker.service" else "network-online.service"; - wants = "network-online.service"; + after = [ "network-online.service" "firewall.service" ] ++ (if cfg.docker then [ "docker.service" ] else []); + wants = [ "network-online.service" "firewall.service" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { # See: https://github.com/rancher/k3s/blob/dddbd16305284ae4bd14c0aade892412310d7edc/install.sh#L197 From 4db9d279c4d76309b080e6f4731cc1c480845e82 Mon Sep 17 00:00:00 2001 From: ThinkChaos Date: Fri, 20 Nov 2020 00:26:03 +0100 Subject: [PATCH 3/4] nixos/k3s: Use `optional` for more idiomatic code --- nixos/modules/services/cluster/k3s/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix index 23cd0169031..28805fd3004 100644 --- a/nixos/modules/services/cluster/k3s/default.nix +++ b/nixos/modules/services/cluster/k3s/default.nix @@ -78,7 +78,7 @@ in systemd.services.k3s = { description = "k3s service"; - after = [ "network-online.service" "firewall.service" ] ++ (if cfg.docker then [ "docker.service" ] else []); + after = [ "network-online.service" "firewall.service" ] ++ (optional cfg.docker "docker.service"); wants = [ "network-online.service" "firewall.service" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { From 0b7c8b92f4a3051b618eb4e0149e519132bb8b78 Mon Sep 17 00:00:00 2001 From: ThinkChaos Date: Tue, 13 Apr 2021 13:37:41 +0200 Subject: [PATCH 4/4] nixos/k3s: Change dependency to `network.service` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jörg Thalheim --- nixos/modules/services/cluster/k3s/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix index 28805fd3004..c5692372ae2 100644 --- a/nixos/modules/services/cluster/k3s/default.nix +++ b/nixos/modules/services/cluster/k3s/default.nix @@ -78,8 +78,8 @@ in systemd.services.k3s = { description = "k3s service"; - after = [ "network-online.service" "firewall.service" ] ++ (optional cfg.docker "docker.service"); - wants = [ "network-online.service" "firewall.service" ]; + after = [ "network.service" "firewall.service" ] ++ (optional cfg.docker "docker.service"); + wants = [ "network.service" "firewall.service" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { # See: https://github.com/rancher/k3s/blob/dddbd16305284ae4bd14c0aade892412310d7edc/install.sh#L197