diff options
| author | adikro <adikro@disroot.org> | 2025-12-18 21:04:00 +0100 |
|---|---|---|
| committer | adikro <adikro@disroot.org> | 2025-12-18 21:04:00 +0100 |
| commit | e60410393cea222b16743a1a87f29c06b9b3543b (patch) | |
| tree | 8a574048613f6b13024795bd710b824b40f5db18 /modules/sys/features/virtualization.nix | |
| parent | ea3bf9c87ee72d6da5ea2316b229082c7fc9cdf6 (diff) | |
rewrite of system modules, hm modules are next
Diffstat (limited to 'modules/sys/features/virtualization.nix')
| -rw-r--r-- | modules/sys/features/virtualization.nix | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/sys/features/virtualization.nix b/modules/sys/features/virtualization.nix new file mode 100644 index 0000000..bb3e6cb --- /dev/null +++ b/modules/sys/features/virtualization.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.virtualization = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + }; + + kvm = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + }; + }; + docker = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + }; + }; + }; + + config = lib.mkIf config.szpont.virtualization.enable (lib.mkMerge [ + (lib.mkIf config.szpont.virtualization.kvm.enable { + virtualisation.libvirtd = { + enable = true; + qemu.package = pkgs.qemu_kvm; + qemu.swtpm.enable = true; + }; + programs.virt-manager.enable = true; + users.users.adam.extraGroups = [ "libvirtd" ]; + boot.initrd.kernelModules = [ "kvm-amd" ]; + }) + + (lib.mkIf config.szpont.virtualization.docker.enable { + virtualisation.docker.enable = true; + environment.systemPackages = [ pkgs.docker-compose ]; + users.users.adam.extraGroups = [ "docker" ]; + }) + ]); +} |
