mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 03:23:29 +03:00
nixos/incus-agent: init
This commit is contained in:
parent
792028c425
commit
293c17926d
3 changed files with 55 additions and 2 deletions
|
@ -1679,6 +1679,7 @@
|
||||||
./virtualisation/ecs-agent.nix
|
./virtualisation/ecs-agent.nix
|
||||||
./virtualisation/hyperv-guest.nix
|
./virtualisation/hyperv-guest.nix
|
||||||
./virtualisation/incus.nix
|
./virtualisation/incus.nix
|
||||||
|
./virtualisation/incus-agent.nix
|
||||||
./virtualisation/kvmgt.nix
|
./virtualisation/kvmgt.nix
|
||||||
./virtualisation/libvirtd.nix
|
./virtualisation/libvirtd.nix
|
||||||
./virtualisation/lxc.nix
|
./virtualisation/lxc.nix
|
||||||
|
|
41
nixos/modules/virtualisation/incus-agent.nix
Normal file
41
nixos/modules/virtualisation/incus-agent.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -13,10 +13,8 @@
|
||||||
buildGoModule,
|
buildGoModule,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
writeScript,
|
writeScript,
|
||||||
writeShellScript,
|
|
||||||
acl,
|
acl,
|
||||||
cowsql,
|
cowsql,
|
||||||
hwdata,
|
|
||||||
libcap,
|
libcap,
|
||||||
lxc,
|
lxc,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
|
@ -38,6 +36,11 @@ buildGoModule rec {
|
||||||
version
|
version
|
||||||
;
|
;
|
||||||
|
|
||||||
|
outputs = [
|
||||||
|
"out"
|
||||||
|
"agent_loader"
|
||||||
|
];
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "lxc";
|
owner = "lxc";
|
||||||
repo = "incus";
|
repo = "incus";
|
||||||
|
@ -99,6 +102,14 @@ buildGoModule rec {
|
||||||
--bash <($out/bin/incus completion bash) \
|
--bash <($out/bin/incus completion bash) \
|
||||||
--fish <($out/bin/incus completion fish) \
|
--fish <($out/bin/incus completion fish) \
|
||||||
--zsh <($out/bin/incus completion zsh)
|
--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 = {
|
passthru = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue