mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 21:50:33 +03:00
nixos/prometheus-sabnzbd-exporter: use LoadCredential for apiKeyFile
This commit is contained in:
parent
aba1bf70cb
commit
6430b7a181
1 changed files with 16 additions and 6 deletions
|
@ -19,7 +19,11 @@ in
|
||||||
};
|
};
|
||||||
apiKeyFile = mkOption {
|
apiKeyFile = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "File containing the API key.";
|
description = ''
|
||||||
|
The path to a file containing the API key.
|
||||||
|
The file is securely passed to the service by leveraging systemd credentials.
|
||||||
|
No special permissions need to be set on this file.
|
||||||
|
'';
|
||||||
example = "/run/secrets/sabnzbd_apikey";
|
example = "/run/secrets/sabnzbd_apikey";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -30,18 +34,24 @@ in
|
||||||
serviceOpts =
|
serviceOpts =
|
||||||
let
|
let
|
||||||
servers = lib.zipAttrs cfg.servers;
|
servers = lib.zipAttrs cfg.servers;
|
||||||
apiKeys = lib.concatStringsSep "," (builtins.map (file: "$(cat ${file})") servers.apiKeyFile);
|
credentials = lib.imap0 (i: v: { name = "apikey-${toString i}"; path = v; }) servers.apiKeyFile;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
serviceConfig.LoadCredential = builtins.map ({ name, path }: "${name}:${path}") credentials;
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
METRICS_PORT = toString cfg.port;
|
METRICS_PORT = toString cfg.port;
|
||||||
METRICS_ADDR = cfg.listenAddress;
|
METRICS_ADDR = cfg.listenAddress;
|
||||||
SABNZBD_BASEURLS = lib.concatStringsSep "," servers.baseUrl;
|
SABNZBD_BASEURLS = lib.concatStringsSep "," servers.baseUrl;
|
||||||
};
|
};
|
||||||
|
|
||||||
script = ''
|
script =
|
||||||
export SABNZBD_APIKEYS="${apiKeys}"
|
let
|
||||||
exec ${lib.getExe pkgs.prometheus-sabnzbd-exporter}
|
apiKeys = lib.concatStringsSep "," (builtins.map (cred: "$(< $CREDENTIALS_DIRECTORY/${cred.name})") credentials);
|
||||||
'';
|
in
|
||||||
|
''
|
||||||
|
export SABNZBD_APIKEYS="${apiKeys}"
|
||||||
|
exec ${lib.getExe pkgs.prometheus-sabnzbd-exporter}
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue