nixos/prometheus/exporters: fix eval if only openFirewall = true; is set

If `openFirewall = true`, but no `firewallFilter` is set, the evaluation
fails with the following error:

    The option `services.prometheus.exporters.node.firewallFilter` is defined both null and
    not null, in `/home/ma27/Projects/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix'
    and `/home/ma27/Projects/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix'.

Originally introduced by me in #115185. The problem is that
`mkOptionDefault` has - as its name suggests - the same priority as the
default-value of the option `firewallFilter` and thus it conflicts if
this declaration and the actual default value are set which is the case
if `firewallFilter` isn't specified somewhere else.
This commit is contained in:
Maximilian Bosch 2021-03-13 15:21:19 +01:00
parent d1dba66e15
commit 22b61e5263
No known key found for this signature in database
GPG Key ID: 091DBF4D1FC46B8E

View File

@ -131,7 +131,7 @@ let
inherit name port;
} // extraOpts);
} ({ config, ... }: mkIf config.openFirewall {
firewallFilter = mkOptionDefault "-p tcp -m tcp --dport ${toString config.port}";
firewallFilter = mkDefault "-p tcp -m tcp --dport ${toString config.port}";
})];
internal = true;
default = {};