ae359d1ef2
Fixes issues described in #208242 for this part of the nixpkgs tree. There are no behavioral changes in this, it only adjusts the code so that it is easier to understand.
70 lines
2.0 KiB
Nix
70 lines
2.0 KiB
Nix
{ config, lib, pkgs, options, ... }:
|
|
|
|
let
|
|
cfg = config.services.prometheus.exporters.idrac;
|
|
inherit (lib) mkOption types;
|
|
|
|
configFile = if cfg.configurationPath != null
|
|
then cfg.configurationPath
|
|
else pkgs.writeText "idrac.yml" (builtins.toJSON cfg.configuration);
|
|
in
|
|
{
|
|
port = 9348;
|
|
extraOpts = {
|
|
configurationPath = mkOption {
|
|
type = with types; nullOr path;
|
|
default = null;
|
|
example = "/etc/prometheus-idrac-exporter/idrac.yml";
|
|
description = ''
|
|
Path to the service's config file. This path can either be a computed path in /nix/store or a path in the local filesystem.
|
|
|
|
The config file should NOT be stored in /nix/store as it will contain passwords and/or keys in plain text.
|
|
|
|
Mutually exclusive with `configuration` option.
|
|
|
|
Configuration reference: https://github.com/mrlhansen/idrac_exporter/#configuration
|
|
'';
|
|
};
|
|
configuration = mkOption {
|
|
type = types.nullOr types.attrs;
|
|
description = ''
|
|
Configuration for iDRAC exporter, as a nix attribute set.
|
|
|
|
Configuration reference: https://github.com/mrlhansen/idrac_exporter/#configuration
|
|
|
|
Mutually exclusive with `configurationPath` option.
|
|
'';
|
|
default = null;
|
|
example = {
|
|
timeout = 10;
|
|
retries = 1;
|
|
hosts = {
|
|
default = {
|
|
username = "username";
|
|
password = "password";
|
|
};
|
|
};
|
|
metrics = {
|
|
system = true;
|
|
sensors = true;
|
|
power = true;
|
|
sel = true;
|
|
storage = true;
|
|
memory = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
serviceOpts = {
|
|
serviceConfig = {
|
|
LoadCredential = "configFile:${configFile}";
|
|
ExecStart = "${pkgs.prometheus-idrac-exporter}/bin/idrac_exporter -config %d/configFile";
|
|
Environment = [
|
|
"IDRAC_EXPORTER_LISTEN_ADDRESS=${cfg.listenAddress}"
|
|
"IDRAC_EXPORTER_LISTEN_PORT=${toString cfg.port}"
|
|
];
|
|
};
|
|
};
|
|
}
|