1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.virtualisation.incus.agent;
10in
11{
12 meta = {
13 maintainers = lib.teams.lxc.members;
14 };
15
16 options = {
17 virtualisation.incus.agent.enable = lib.mkEnableOption "Incus agent";
18 };
19
20 config = lib.mkIf cfg.enable {
21 services.udev.packages = [ config.virtualisation.incus.package.agent_loader ];
22 systemd.packages = [ config.virtualisation.incus.package.agent_loader ];
23
24 systemd.services.incus-agent = {
25 enable = true;
26 wantedBy = [ "multi-user.target" ];
27
28 path = [
29 pkgs.kmod
30 pkgs.util-linux
31
32 # allow `incus exec` to find system binaries
33 "/run/current-system/sw"
34 ];
35
36 # avoid killing nixos-rebuild switch when executed through incus exec
37 restartIfChanged = false;
38 stopIfChanged = false;
39 };
40 };
41}