summaryrefslogtreecommitdiff
path: root/os/vms/opnsense.nix
diff options
context:
space:
mode:
Diffstat (limited to 'os/vms/opnsense.nix')
-rw-r--r--os/vms/opnsense.nix95
1 files changed, 0 insertions, 95 deletions
diff --git a/os/vms/opnsense.nix b/os/vms/opnsense.nix
deleted file mode 100644
index b9f2978..0000000
--- a/os/vms/opnsense.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{
- config,
- lib,
- inputs,
- ...
-}:
-let
- cfg = config.os.srv.opnsense;
- makePciArgs =
- ids:
- builtins.concatLists (
- map (id: [
- "-device"
- "vfio-pci,host=${id},rombar=0"
- ]) ids
- );
-in
-{
- imports = [ inputs.microvm.nixosModules.host ];
-
- options.os.srv.opnsense = {
- enable = lib.mkEnableOption "enables an opnsense microvm";
-
- pciIDs = lib.mkOption {
- type = lib.types.listOf lib.types.str;
- default = [ ];
- example = [
- "03:00.0"
- "03:00.1"
- ];
- description = "List of PCI bus addresses to pass through directly to OPNsense.";
- };
-
- vendorIDs = lib.mkOption {
- type = lib.types.listOf lib.types.str;
- default = [ ];
- example = [ "8086:1563" ];
- description = "List of Vendor:Device IDs to bind explicitly to the vfio-pci driver.";
- };
-
- imagePath = lib.mkOption {
- type = lib.types.path;
- default = /var/lib/microvm/images/opnsense.qcow2;
- description = "Path to the OPNsense qcow2 drive image block.";
- };
- };
-
- config = lib.mkIf cfg.enable {
- boot = {
- kernelParams = [
- "intel_iommu=on"
- "iommu=pt"
- ];
- kernelModules = [
- "vfio_pci"
- "vfio"
- "vfio_iommu_type1"
- ];
- extraModprobeConfig = ''
- options vfio-pci ids=${lib.concatStringsSep "," (lib.unique cfg.vendorIDs)}
- '';
- };
-
- microvm.vms.opnsense = {
- autostart = true;
- config = {
- imports = [ inputs.microvm.nixosModules.microvm ];
-
- networking.hostName = "opnsense";
-
- microvm = {
- vcpu = 4;
- mem = 4096;
- hypervisor = "qemu";
-
- interfaces = [
- {
- type = "bridge";
- id = "vtnet0";
- bridge = "br-srv";
- }
- ];
-
- qemu.extraArgs = [
- "-machine"
- "q35,accel=kvm,kernel-irqchip=on"
- "-cpu"
- "host,migratable=off,+invtsc"
- ]
- ++ (makePciArgs cfg.pciIDs);
- };
- };
- };
- };
-}