Merge pull request #48499 from aneeshusa/restart-salt-on-config-changes

nixos/salt: restart on config changes

Changed files
+19 -5
nixos
modules
services
admin
+3
nixos/modules/services/admin/salt/master.nix
···
Type = "notify";
NotifyAccess = "all";
};
+
restartTriggers = [
+
config.environment.etc."salt/master".source
+
];
};
};
+16 -5
nixos/modules/services/admin/salt/minion.nix
···
# Default is in /etc/salt/pki/minion
pki_dir = "/var/lib/salt/pki/minion";
} cfg.configuration;
-
configDir = pkgs.writeTextDir "minion" (builtins.toJSON fullConfig);
in
···
default = {};
description = ''
Salt minion configuration as Nix attribute set.
-
See <link xlink:href="https://docs.saltstack.com/en/latest/ref/configuration/minion.html"/>
-
for details.
+
See <link xlink:href="https://docs.saltstack.com/en/latest/ref/configuration/minion.html"/>
+
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" ];
···
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
+
];
};
};
}