pkgs.writeErofsLayers,profiles/ch-runner: MVE

$ nix-build -A examples.dummy.config.debug.closure.erofs.list | xargs
cat | xargs du -h
749M    /nix/store/bzfv5x6lycq6hzhjv6d6vlk1q8fdg9di-base0.erofs
24M     /nix/store/hp41jfq36y0mmjrzqilyh3jfsvqic3kb-nixos.erofs

$ nix run -f . examples.dummy.config.uvms.cloud-hypervisor.runner
...
<<< Welcome to NixOS 25.11pre-git (x86_64) - ttyS0 >>>

nixos login:

The definition of the `pkgs` fixpoint was moved to pkgs/default.nix.
For that, dirToAttrs was moved to lib/, imported ad hoc
This commit is contained in:
Else, Someone 2025-09-19 16:28:48 +03:00
parent 1828835a1d
commit 28d3f89ad4
12 changed files with 428 additions and 77 deletions

View file

@ -1,47 +1,42 @@
{
options,
config,
lib,
pkgs,
...
}:
let
mkIfGuest = import ../lib/mkIfMicrovmGuest.nix { inherit options config lib; };
in
{
imports = [
./vsock-connect-guest.nix
./uvms-users.nix
];
config = lib.optionalAttrs (options ? microvm) {
microvm = {
hypervisor = "cloud-hypervisor";
volumes = [
config = lib.mkMerge [
(mkIfGuest {
microvm = {
hypervisor = "cloud-hypervisor";
volumes = [
{
image = "swapfile.img";
mountPoint = "/var/swapfiles";
size = 1024;
}
];
};
swapDevices = [
{
image = "swapfile.img";
mountPoint = "/var/swapfiles";
size = 1024;
device = "/var/swapfiles/swap0";
size = 768;
}
];
cloud-hypervisor.extraArgs = [
"--api-socket=ch.sock"
];
};
swapDevices = [
{
device = "/var/swapfiles/swap0";
size = 768;
}
];
})
{
boot.kernelParams = [ "zswap.enabled=1" ];
zramSwap.enable = false;
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";
};
};
}
];
}