From e7872cda4bb213b3229cf35a7a001f172daf45fc Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Thu, 6 Jun 2019 08:43:46 -0400 Subject: [PATCH 1/2] nixos containers: don't shadow config, rename to containerConfig --- nixos/modules/virtualisation/containers.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index d10c4feecb43..604ad14b8384 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -689,7 +689,7 @@ in [{ name = "container@"; value = unit; }] # declarative containers ++ (mapAttrsToList (name: cfg: nameValuePair "container@${name}" (let - config = cfg // ( + containerConfig = cfg // ( if cfg.enableTun then { allowedDevices = cfg.allowedDevices @@ -700,17 +700,17 @@ in else {}); in unit // { - preStart = preStartScript config; - script = startScript config; - postStart = postStartScript config; - serviceConfig = serviceDirectives config; + preStart = preStartScript containerConfig; + script = startScript containerConfig; + postStart = postStartScript containerConfig; + serviceConfig = serviceDirectives containerConfig; } // ( - if config.autoStart then + if containerConfig.autoStart then { wantedBy = [ "machines.target" ]; wants = [ "network.target" ]; after = [ "network.target" ]; - restartTriggers = [ config.path ]; + restartTriggers = [ containerConfig.path ]; reloadIfChanged = true; } else {}) From b2fbbad107a4086bac3c9ffbee4463c4539757e3 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Thu, 6 Jun 2019 10:19:07 -0400 Subject: [PATCH 2/2] nixos containers: restart containers with autoStart = true when their conf changes --- nixos/modules/virtualisation/containers.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index 604ad14b8384..97243e3304ee 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -710,8 +710,11 @@ in wantedBy = [ "machines.target" ]; wants = [ "network.target" ]; after = [ "network.target" ]; - restartTriggers = [ containerConfig.path ]; - reloadIfChanged = true; + restartTriggers = [ + containerConfig.path + config.environment.etc."containers/${name}.conf".source + ]; + restartIfChanged = true; } else {}) )) config.containers)