47 lines
951 B
Nix
47 lines
951 B
Nix
{
|
|
options,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
./vsock-connect-guest.nix
|
|
./uvms-users.nix
|
|
];
|
|
config = lib.optionalAttrs (options ? microvm) {
|
|
microvm = {
|
|
hypervisor = "cloud-hypervisor";
|
|
volumes = [
|
|
{
|
|
image = "swapfile.img";
|
|
mountPoint = "/var/swapfiles";
|
|
size = 1024;
|
|
}
|
|
];
|
|
cloud-hypervisor.extraArgs = [
|
|
"--api-socket=ch.sock"
|
|
];
|
|
};
|
|
swapDevices = [
|
|
{
|
|
device = "/var/swapfiles/swap0";
|
|
size = 768;
|
|
}
|
|
];
|
|
|
|
boot.kernelParams = [ "zswap.enabled=1" ];
|
|
zramSwap.enable = false;
|
|
|
|
systemd.services."microvm@".serviceConfig.ExecStartPost =
|
|
pkgs.writeShellScript "microvm-fix-umask" ''
|
|
if [[ -e CONNECT.vsock ]] ; then
|
|
chmod g+r CONNECT.vsock
|
|
fi
|
|
'';
|
|
|
|
systemd.tmpfiles.settings."10-muvm" = {
|
|
"/var/lib/microvms/*/CONNECT.sock".z.mode = "660";
|
|
};
|
|
};
|
|
}
|