system/virtualization: init from legacy

This commit is contained in:
Felix Buehler 2023-03-19 11:48:23 +01:00
parent 133340bbe1
commit 97afc505cb
5 changed files with 45 additions and 14 deletions

View file

@ -1,13 +0,0 @@
{ config, lib, pkgs, ... }:
{
boot.kernelModules = [
"kvm-amd"
"kvm-intel"
];
virtualisation.libvirtd.enable = true;
environment.systemPackages = with pkgs; [
virtmanager
];
}

View file

@ -14,7 +14,6 @@
../../legacy/modules/gaming.nix ../../legacy/modules/gaming.nix
../../legacy/modules/hardware-base.nix ../../legacy/modules/hardware-base.nix
../../legacy/modules/intel-video.nix ../../legacy/modules/intel-video.nix
../../legacy/modules/kvm.nix
../../legacy/modules/location.nix ../../legacy/modules/location.nix
../../legacy/modules/media.nix ../../legacy/modules/media.nix
../../legacy/modules/meeting.nix ../../legacy/modules/meeting.nix

View file

@ -7,5 +7,9 @@ in
my.system = { my.system = {
avahi.enable = true; avahi.enable = true;
podman.enable = true; podman.enable = true;
virtualization = {
enable = true;
cpuFlavor = "intel";
};
}; };
} }

View file

@ -4,6 +4,7 @@
./avahi ./avahi
./docker ./docker
./podman ./podman
./virtualization
]; ];
} }

View file

@ -0,0 +1,40 @@
{ config, lib, pkgs, ... }:
let
cfg = config.my.system.virtualization;
in
{
options.my.system.virtualization = with lib; {
enable = mkEnableOption "virtualization configuration";
cpuFlavor = mkOption {
type = with types; nullOr (enum [ "intel" "amd" ]);
default = null;
example = "intel";
description = "Which kind of CPU to activate kernelModules";
};
};
config = lib.mkIf cfg.enable (lib.mkMerge [
{
virtualisation.libvirtd.enable = true;
environment.systemPackages = with pkgs; [
virtmanager
];
}
# Intel CPU
(lib.mkIf (cfg.cpuFlavor == "intel") {
boot.kernelModules = [
"kvm-intel"
];
})
# AMD CPU
(lib.mkIf (cfg.cpuFlavor == "amd") {
boot.kernelModules = [
"kvm-amd"
];
})
]);
}