nixos/libvirtd: add support for nss modules

This commit is contained in:
John Chadwick 2023-11-21 01:39:02 -05:00
parent 07fb3036db
commit 412543ddd8
2 changed files with 40 additions and 1 deletions

View File

@ -183,6 +183,31 @@ let
};
};
};
nssModule = types.submodule {
options = {
enable = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
This option enables the older libvirt NSS module. This method uses
DHCP server records, therefore is dependent on the hostname provided
by the guest.
Please see https://libvirt.org/nss.html for more information.
'';
};
enableGuest = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
This option enables the newer libvirt_guest NSS module. This module
uses the libvirt guest name instead of the hostname of the guest.
Please see https://libvirt.org/nss.html for more information.
'';
};
};
};
in
{
@ -308,6 +333,14 @@ in
Hooks related options.
'';
};
nss = mkOption {
type = nssModule;
default = { };
description = lib.mdDoc ''
libvirt NSS module options.
'';
};
};
@ -498,5 +531,11 @@ in
});
'';
};
system.nssModules = optional (cfg.nss.enable or cfg.nss.enableGuest) cfg.package;
system.nssDatabases.hosts = builtins.concatLists [
(optional cfg.nss.enable "libvirt")
(optional cfg.nss.enableGuest "libvirt_guest")
];
};
}

View File

@ -14,10 +14,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
libvirtd.hooks.qemu.is_working = "${pkgs.writeShellScript "testHook.sh" ''
touch /tmp/qemu_hook_is_working
''}";
libvirtd.nss.enable = true;
};
boot.supportedFilesystems = [ "zfs" ];
networking.hostId = "deadbeef"; # needed for zfs
networking.nameservers = [ "192.168.122.1" ];
security.polkit.enable = true;
environment.systemPackages = with pkgs; [ virt-manager ];
};