Unverified Commit 8db88597 authored by Jenny's avatar Jenny Committed by GitHub
Browse files

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

parents e69ff6ff 518bc9c5
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -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;