about summary refs log tree commit diff
path: root/nix/modules/libvirtnix/config.nix
diff options
context:
space:
mode:
authorEmile <git@emile.space>2025-05-07 21:42:04 +0200
committerEmile <git@emile.space>2025-05-07 21:42:04 +0200
commitd72fee53142fe38b2ddd0a73c76bc80c81951710 (patch)
treeaac9fc9236f64ad042dd4c7e189ed605a2f653a3 /nix/modules/libvirtnix/config.nix
parent3b9564639c26be02aa8e60fcc5bd05dcafda18f9 (diff)
(corrino) basic libvirtnix setup
Build using

; nix-build test.nix -A config.services.emile.libvirtnix.output.domain --show-trace && cat result | xq

Generates a result symlink to an xml file that is generated from config.nix
Diffstat (limited to 'nix/modules/libvirtnix/config.nix')
-rw-r--r--nix/modules/libvirtnix/config.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/nix/modules/libvirtnix/config.nix b/nix/modules/libvirtnix/config.nix
new file mode 100644
index 0000000..e1a8d28
--- /dev/null
+++ b/nix/modules/libvirtnix/config.nix
@@ -0,0 +1,59 @@
+{
+  services.emile.libvirtnix = {
+    enable = true;
+    vm = {
+      "alan" = {
+        vm_type = "kvm";
+        id = "1337";
+        name = "blub";
+        uuid = "cafebabe-d474-452b-80f4-c951c39bcf74";
+
+        metadata.libosinfo = "https://libosinfo.org/xmlns/libvirt/domain/1.0";
+        metadata.libosinfo_os = "https://nixos.org/nixos/unknown";
+
+        memory.unit = "KiB";
+        memory.value = 2097152;
+
+        currentMemory.unit = "KiB";
+        currentMemory.value = 2097152;
+
+        vcpu.placement = "static";
+        vcpu.count = 3;
+
+        resource.partition = "/machine";
+
+        os = {
+          type = {
+            arch = "x86_64";
+            machine = "pc-q35-3.1";
+            value = "hvm";
+          };
+
+          loader = {
+            readonly = "yes";
+            type = "pflash";
+            value = "/usr/share/OVMF/OVMF_CODE.fd";
+          };
+
+          nvram.value = "/var/lib/libvirt/qemu/nvram/fileserver2_VARS.fd";
+
+          boot.dev = "hd";
+        };
+
+        features = {
+          acpi = true;
+          apic = true;
+          vmport = {
+            state = "off";
+          };
+        };
+
+        cpu = {
+          mode = "host-passthrough";
+          check = "none";
+          migratable = "on";
+        };
+      };
+    };
+  };
+}