diff --git a/nixos/modules/services/admin/salt/master.nix b/nixos/modules/services/admin/salt/master.nix
index 165580b9783..c6b1b0cc0bd 100644
--- a/nixos/modules/services/admin/salt/master.nix
+++ b/nixos/modules/services/admin/salt/master.nix
@@ -53,6 +53,9 @@ in
Type = "notify";
NotifyAccess = "all";
};
+ restartTriggers = [
+ config.environment.etc."salt/master".source
+ ];
};
};
diff --git a/nixos/modules/services/admin/salt/minion.nix b/nixos/modules/services/admin/salt/minion.nix
index 9ecefb32cfa..c8fa9461a20 100644
--- a/nixos/modules/services/admin/salt/minion.nix
+++ b/nixos/modules/services/admin/salt/minion.nix
@@ -15,7 +15,6 @@ let
# Default is in /etc/salt/pki/minion
pki_dir = "/var/lib/salt/pki/minion";
} cfg.configuration;
- configDir = pkgs.writeTextDir "minion" (builtins.toJSON fullConfig);
in
@@ -28,15 +27,24 @@ in
default = {};
description = ''
Salt minion configuration as Nix attribute set.
- See
- for details.
+ See
+ for details.
'';
};
};
};
config = mkIf cfg.enable {
- environment.systemPackages = with pkgs; [ salt ];
+ environment = {
+ # Set this up in /etc/salt/minion so `salt-call`, etc. work.
+ # The alternatives are
+ # - passing --config-dir to all salt commands, not just the minion unit,
+ # - setting aglobal environment variable.
+ etc."salt/minion".source = pkgs.writeText "minion" (
+ builtins.toJSON fullConfig
+ );
+ systemPackages = with pkgs; [ salt ];
+ };
systemd.services.salt-minion = {
description = "Salt Minion";
wantedBy = [ "multi-user.target" ];
@@ -45,11 +53,14 @@ in
utillinux
];
serviceConfig = {
- ExecStart = "${pkgs.salt}/bin/salt-minion --config-dir=${configDir}";
+ ExecStart = "${pkgs.salt}/bin/salt-minion";
LimitNOFILE = 8192;
Type = "notify";
NotifyAccess = "all";
};
+ restartTriggers = [
+ config.environment.etc."salt/minion".source
+ ];
};
};
}