Merge #120493: nixos/kresd: allow package to be configured

Changed files
+12 -5
nixos
modules
services
networking
+12 -5
nixos/modules/services/networking/kresd.nix
···
+ concatMapStrings (mkListen "doh2") cfg.listenDoH
+ cfg.extraConfig
);
-
-
package = pkgs.knot-resolver;
in {
meta.maintainers = [ maintainers.vcunat /* upstream developer */ ];
···
You can run <literal>sudo nc -U /run/knot-resolver/control/1</literal>
and give commands interactively to kresd@1.service.
'';
};
extraConfig = mkOption {
type = types.lines;
···
};
users.groups.knot-resolver.gid = null;
-
systemd.packages = [ package ]; # the units are patched inside the package a bit
systemd.targets.kresd = { # configure units started by default
wantedBy = [ "multi-user.target" ];
···
++ map (i: "kresd@${toString i}.service") (range 1 cfg.instances);
};
systemd.services."kresd@".serviceConfig = {
-
ExecStart = "${package}/bin/kresd --noninteractive "
-
+ "-c ${package}/lib/knot-resolver/distro-preconfig.lua -c ${configFile}";
# Ensure /run/knot-resolver exists
RuntimeDirectory = "knot-resolver";
RuntimeDirectoryMode = "0770";
···
+ concatMapStrings (mkListen "doh2") cfg.listenDoH
+ cfg.extraConfig
);
in {
meta.maintainers = [ maintainers.vcunat /* upstream developer */ ];
···
You can run <literal>sudo nc -U /run/knot-resolver/control/1</literal>
and give commands interactively to kresd@1.service.
'';
+
};
+
package = mkOption {
+
type = types.package;
+
description = "
+
knot-resolver package to use.
+
";
+
default = pkgs.knot-resolver;
+
defaultText = "pkgs.knot-resolver";
+
example = literalExample "pkgs.knot-resolver.override { extraFeatures = true; }";
};
extraConfig = mkOption {
type = types.lines;
···
};
users.groups.knot-resolver.gid = null;
+
systemd.packages = [ cfg.package ]; # the units are patched inside the package a bit
systemd.targets.kresd = { # configure units started by default
wantedBy = [ "multi-user.target" ];
···
++ map (i: "kresd@${toString i}.service") (range 1 cfg.instances);
};
systemd.services."kresd@".serviceConfig = {
+
ExecStart = "${cfg.package}/bin/kresd --noninteractive "
+
+ "-c ${cfg.package}/lib/knot-resolver/distro-preconfig.lua -c ${configFile}";
# Ensure /run/knot-resolver exists
RuntimeDirectory = "knot-resolver";
RuntimeDirectoryMode = "0770";