Loading nixos/modules/module-list.nix +1 −0 Original line number Diff line number Diff line Loading @@ -1679,6 +1679,7 @@ ./virtualisation/ecs-agent.nix ./virtualisation/hyperv-guest.nix ./virtualisation/incus.nix ./virtualisation/incus-agent.nix ./virtualisation/kvmgt.nix ./virtualisation/libvirtd.nix ./virtualisation/lxc.nix Loading nixos/modules/virtualisation/incus-agent.nix 0 → 100644 +41 −0 Original line number Diff line number Diff line { config, lib, pkgs, ... }: let cfg = config.virtualisation.incus.agent; in { meta = { maintainers = lib.teams.lxc.members; }; options = { virtualisation.incus.agent.enable = lib.mkEnableOption "Incus agent"; }; config = lib.mkIf cfg.enable { services.udev.packages = [ config.virtualisation.incus.package.agent_loader ]; systemd.packages = [ config.virtualisation.incus.package.agent_loader ]; systemd.services.incus-agent = { enable = true; wantedBy = [ "multi-user.target" ]; path = [ pkgs.kmod pkgs.util-linux # allow `incus exec` to find system binaries "/run/current-system/sw" ]; # avoid killing nixos-rebuild switch when executed through incus exec restartIfChanged = false; stopIfChanged = false; }; }; } pkgs/by-name/in/incus/generic.nix +13 −2 Original line number Diff line number Diff line Loading @@ -13,10 +13,8 @@ buildGoModule, fetchFromGitHub, writeScript, writeShellScript, acl, cowsql, hwdata, libcap, lxc, pkg-config, Loading @@ -38,6 +36,11 @@ buildGoModule rec { version ; outputs = [ "out" "agent_loader" ]; src = fetchFromGitHub { owner = "lxc"; repo = "incus"; Loading Loading @@ -99,6 +102,14 @@ buildGoModule rec { --bash <($out/bin/incus completion bash) \ --fish <($out/bin/incus completion fish) \ --zsh <($out/bin/incus completion zsh) mkdir -p $agent_loader/bin $agent_loader/etc/systemd/system $agent_loader/lib/udev/rules.d cp internal/server/instance/drivers/agent-loader/incus-agent-setup $agent_loader/bin/ chmod +x $agent_loader/bin/incus-agent-setup patchShebangs $agent_loader/bin/incus-agent-setup cp internal/server/instance/drivers/agent-loader/systemd/incus-agent.service $agent_loader/etc/systemd/system/ cp internal/server/instance/drivers/agent-loader/systemd/incus-agent.rules $agent_loader/lib/udev/rules.d/99-incus-agent.rules substituteInPlace $agent_loader/etc/systemd/system/incus-agent.service --replace-fail 'TARGET/systemd' "$agent_loader/bin" ''; passthru = { Loading Loading
nixos/modules/module-list.nix +1 −0 Original line number Diff line number Diff line Loading @@ -1679,6 +1679,7 @@ ./virtualisation/ecs-agent.nix ./virtualisation/hyperv-guest.nix ./virtualisation/incus.nix ./virtualisation/incus-agent.nix ./virtualisation/kvmgt.nix ./virtualisation/libvirtd.nix ./virtualisation/lxc.nix Loading
nixos/modules/virtualisation/incus-agent.nix 0 → 100644 +41 −0 Original line number Diff line number Diff line { config, lib, pkgs, ... }: let cfg = config.virtualisation.incus.agent; in { meta = { maintainers = lib.teams.lxc.members; }; options = { virtualisation.incus.agent.enable = lib.mkEnableOption "Incus agent"; }; config = lib.mkIf cfg.enable { services.udev.packages = [ config.virtualisation.incus.package.agent_loader ]; systemd.packages = [ config.virtualisation.incus.package.agent_loader ]; systemd.services.incus-agent = { enable = true; wantedBy = [ "multi-user.target" ]; path = [ pkgs.kmod pkgs.util-linux # allow `incus exec` to find system binaries "/run/current-system/sw" ]; # avoid killing nixos-rebuild switch when executed through incus exec restartIfChanged = false; stopIfChanged = false; }; }; }
pkgs/by-name/in/incus/generic.nix +13 −2 Original line number Diff line number Diff line Loading @@ -13,10 +13,8 @@ buildGoModule, fetchFromGitHub, writeScript, writeShellScript, acl, cowsql, hwdata, libcap, lxc, pkg-config, Loading @@ -38,6 +36,11 @@ buildGoModule rec { version ; outputs = [ "out" "agent_loader" ]; src = fetchFromGitHub { owner = "lxc"; repo = "incus"; Loading Loading @@ -99,6 +102,14 @@ buildGoModule rec { --bash <($out/bin/incus completion bash) \ --fish <($out/bin/incus completion fish) \ --zsh <($out/bin/incus completion zsh) mkdir -p $agent_loader/bin $agent_loader/etc/systemd/system $agent_loader/lib/udev/rules.d cp internal/server/instance/drivers/agent-loader/incus-agent-setup $agent_loader/bin/ chmod +x $agent_loader/bin/incus-agent-setup patchShebangs $agent_loader/bin/incus-agent-setup cp internal/server/instance/drivers/agent-loader/systemd/incus-agent.service $agent_loader/etc/systemd/system/ cp internal/server/instance/drivers/agent-loader/systemd/incus-agent.rules $agent_loader/lib/udev/rules.d/99-incus-agent.rules substituteInPlace $agent_loader/etc/systemd/system/incus-agent.service --replace-fail 'TARGET/systemd' "$agent_loader/bin" ''; passthru = { Loading