services-vault: make package configurable and add extraConfig option

Changed files
+18 -4
nixos
modules
services
security
+18 -4
nixos/modules/services/security/vault.nix
···
{ config, lib, pkgs, ... }:
with lib;
+
let
cfg = config.services.vault;
···
${cfg.telemetryConfig}
}
''}
+
${cfg.extraConfig}
'';
in
+
{
options = {
-
services.vault = {
-
enable = mkEnableOption "Vault daemon";
+
package = mkOption {
+
type = types.package;
+
default = pkgs.vault;
+
defaultText = "pkgs.vault";
+
description = "This option specifies the vault package to use.";
+
};
+
address = mkOption {
type = types.str;
default = "127.0.0.1:8200";
···
default = ''
tls_min_version = "tls12"
'';
-
description = "extra configuration";
+
description = "Extra text appended to the listener section.";
};
storageBackend = mkOption {
···
default = "";
description = "Telemetry configuration";
};
+
+
extraConfig = mkOption {
+
type = types.lines;
+
default = "";
+
description = "Extra text appended to <filename>vault.hcl</filename>.";
+
};
};
};
···
User = "vault";
Group = "vault";
PermissionsStartOnly = true;
-
ExecStart = "${pkgs.vault}/bin/vault server -config ${configFile}";
+
ExecStart = "${cfg.package}/bin/vault server -config ${configFile}";
PrivateDevices = true;
PrivateTmp = true;
ProtectSystem = "full";