Unverified Commit cf032781 authored by Aaron Andersen's avatar Aaron Andersen Committed by GitHub
Browse files

Merge pull request #207093 from ymarkus/alertmanager

nixos/alertmanager: add checkConfig option
parents 8fe90f59 060f0dd4
Loading
Loading
Loading
Loading
+20 −4
Original line number Diff line number Diff line
@@ -6,10 +6,12 @@ let
  cfg = config.services.prometheus.alertmanager;
  mkConfigFile = pkgs.writeText "alertmanager.yml" (builtins.toJSON cfg.configuration);

  checkedConfig = file: pkgs.runCommand "checked-config" { buildInputs = [ cfg.package ]; } ''
  checkedConfig = file:
    if cfg.checkConfig then
      pkgs.runCommand "checked-config" { buildInputs = [ cfg.package ]; } ''
        ln -s ${file} $out
        amtool check-config $out
  '';
      '' else file;

  alertmanagerYml = let
    yml = if cfg.configText != null then
@@ -70,6 +72,20 @@ in {
        '';
      };

      checkConfig = mkOption {
        type = types.bool;
        default = true;
        description = lib.mdDoc ''
          Check configuration with `amtool check-config`. The call to `amtool` is
          subject to sandboxing by Nix.

          If you use credentials stored in external files
          (`environmentFile`, etc),
          they will not be visible to `amtool`
          and it will report errors, despite a correct configuration.
        '';
      };

      logFormat = mkOption {
        type = types.nullOr types.str;
        default = null;