nixos/promtail: configFile for passing path as config (#322426)

This commit is contained in:
Jenny
2024-11-08 08:58:33 +01:00
committed by GitHub

View File

@@ -10,15 +10,29 @@ let
allowPositionsFile = !lib.hasPrefix "/var/cache/promtail" positionsFile;
positionsFile = cfg.configuration.positions.filename;
configFile = if cfg.configFile != null
then cfg.configFile
else prettyJSON cfg.configuration;
in {
options.services.promtail = with types; {
enable = mkEnableOption "the Promtail ingresser";
configuration = mkOption {
type = (pkgs.formats.json {}).type;
description = ''
Specify the configuration for Promtail in Nix.
This option will be ignored if `services.promtail.configFile` is defined.
'';
};
configFile = mkOption {
type = nullOr path;
default = null;
description = ''
Config file path for Promtail.
If this option is defined, the value of `services.promtail.configuration` will be ignored.
'';
};
@@ -42,14 +56,14 @@ in {
stopIfChanged = false;
preStart = ''
${lib.getExe pkgs.promtail} -config.file=${prettyJSON cfg.configuration} -check-syntax
${lib.getExe pkgs.promtail} -config.file=${configFile} -check-syntax
'';
serviceConfig = {
Restart = "on-failure";
TimeoutStopSec = 10;
ExecStart = "${pkgs.promtail}/bin/promtail -config.file=${prettyJSON cfg.configuration} ${escapeShellArgs cfg.extraFlags}";
ExecStart = "${pkgs.promtail}/bin/promtail -config.file=${configFile} ${escapeShellArgs cfg.extraFlags}";
ProtectSystem = "strict";
ProtectHome = true;