summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorRicardo M. Correia <rcorreia@wizy.org>2017-02-07 13:16:17 +0100
committerRicardo M. Correia <rcorreia@wizy.org>2017-02-07 13:48:58 +0100
commitaf4e6f155e29df6a8b4c938f0e79eb7be706f447 (patch)
tree3ef32f8efdef3641e3f218c8c3352a3ee364e6ec /nixos
parent83865b2c6cba71c15336ab9aefa3b6bed6986abe (diff)
downloadnixlib-af4e6f155e29df6a8b4c938f0e79eb7be706f447.tar
nixlib-af4e6f155e29df6a8b4c938f0e79eb7be706f447.tar.gz
nixlib-af4e6f155e29df6a8b4c938f0e79eb7be706f447.tar.bz2
nixlib-af4e6f155e29df6a8b4c938f0e79eb7be706f447.tar.lz
nixlib-af4e6f155e29df6a8b4c938f0e79eb7be706f447.tar.xz
nixlib-af4e6f155e29df6a8b4c938f0e79eb7be706f447.tar.zst
nixlib-af4e6f155e29df6a8b4c938f0e79eb7be706f447.zip
nixos.chrony: pass config file directly to daemon
This fixes an issue where `nixops deploy` wouldn't restart the chrony
service when the chrony configuration changed, because it wouldn't
detect that `/etc/chrony.conf` was a dependency of the chrony service.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/networking/chrony.nix39
1 files changed, 19 insertions, 20 deletions
diff --git a/nixos/modules/services/networking/chrony.nix b/nixos/modules/services/networking/chrony.nix
index f2ff11633b1b..ff62acff6eb8 100644
--- a/nixos/modules/services/networking/chrony.nix
+++ b/nixos/modules/services/networking/chrony.nix
@@ -12,6 +12,24 @@ let
 
   cfg = config.services.chrony;
 
+  configFile = pkgs.writeText "chrony.conf" ''
+    ${concatMapStringsSep "\n" (server: "server " + server) cfg.servers}
+
+    ${optionalString
+      cfg.initstepslew.enabled
+      "initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.initstepslew.servers}"
+    }
+
+    driftfile ${stateDir}/chrony.drift
+
+    keyfile ${keyFile}
+    generatecommandkey
+
+    ${optionalString (!config.time.hardwareClockInLocalTime) "rtconutc"}
+
+    ${cfg.extraConfig}
+  '';
+
 in
 
 {
@@ -70,25 +88,6 @@ in
     # Make chronyc available in the system path
     environment.systemPackages = [ pkgs.chrony ];
 
-    environment.etc."chrony.conf".text =
-      ''
-        ${concatMapStringsSep "\n" (server: "server " + server) cfg.servers}
-
-        ${optionalString
-          cfg.initstepslew.enabled
-          "initstepslew ${toString cfg.initstepslew.threshold} ${concatStringsSep " " cfg.initstepslew.servers}"
-        }
-
-        driftfile ${stateDir}/chrony.drift
-
-        keyfile ${keyFile}
-        generatecommandkey
-
-        ${optionalString (!config.time.hardwareClockInLocalTime) "rtconutc"}
-
-        ${cfg.extraConfig}
-      '';
-
     users.extraGroups = singleton
       { name = "chrony";
         gid = config.ids.gids.chrony;
@@ -124,7 +123,7 @@ in
           '';
 
         serviceConfig =
-          { ExecStart = "${pkgs.chrony}/bin/chronyd -n -m -u chrony";
+          { ExecStart = "${pkgs.chrony}/bin/chronyd -n -m -u chrony -f ${configFile}";
           };
       };