nixos/kerberos_server: add extraKDCArgs option

Changed files
+30 -2
nixos
modules
services
system
+9
nixos/modules/services/system/kerberos/default.nix
···
let
inherit (lib) mkOption types;
+
inherit (lib.types) listOf str;
cfg = config.services.kerberos_server;
inherit (config.security.krb5) package;
···
- MIT Kerberos: <https://web.mit.edu/kerberos/krb5-1.21/doc/admin/conf_files/kdc_conf.html>
'';
default = { };
+
};
+
+
extraKDCArgs = mkOption {
+
type = listOf str;
+
description = ''
+
Extra arguments to pass to the KDC process. See {manpage}`kdc(8)`.
+
'';
+
default = [ ];
};
};
};
+10 -1
nixos/modules/services/system/kerberos/heimdal.nix
···
pkgs,
config,
lib,
+
utils,
...
}:
let
inherit (lib) mapAttrs;
+
inherit (utils) escapeSystemdExecArgs;
+
cfg = config.services.kerberos_server;
package = config.security.krb5.package;
···
"info:heimdal"
];
serviceConfig = {
-
ExecStart = "${package}/libexec/kdc --config-file=/etc/heimdal-kdc/kdc.conf";
+
ExecStart = escapeSystemdExecArgs (
+
[
+
"${package}/libexec/kdc"
+
"--config-file=/etc/heimdal-kdc/kdc.conf"
+
]
+
++ cfg.extraKDCArgs
+
);
Slice = "system-kerberos-server.slice";
StateDirectory = "heimdal";
};
+11 -1
nixos/modules/services/system/kerberos/mit.nix
···
pkgs,
config,
lib,
+
utils,
...
}:
let
inherit (lib) mapAttrs;
+
inherit (utils) escapeSystemdExecArgs;
+
cfg = config.services.kerberos_server;
package = config.security.krb5.package;
PIDFile = "/run/kdc.pid";
···
serviceConfig = {
Type = "forking";
PIDFile = PIDFile;
-
ExecStart = "${package}/bin/krb5kdc -P ${PIDFile}";
+
ExecStart = escapeSystemdExecArgs (
+
[
+
"${package}/bin/krb5kdc"
+
"-P"
+
"${PIDFile}"
+
]
+
++ cfg.extraKDCArgs
+
);
Slice = "system-kerberos-server.slice";
StateDirectory = "krb5kdc";
};