summaryrefslogtreecommitdiff
path: root/os/vms
diff options
context:
space:
mode:
authoradi <adikro@disroot.org>2026-07-29 17:09:58 +0200
committeradi <adikro@disroot.org>2026-07-29 17:09:58 +0200
commit39a2b09c27bb74c9e59d1772764f901e3c8fb9e4 (patch)
tree0ba58e6fbf086a85d875df1c10f6d23bc3bbc7da /os/vms
parent8a820cacee1ff07ae7397d053b26e66f7086a4a4 (diff)
revamped flake.nix, removed homelab specific modulesstaging
Diffstat (limited to 'os/vms')
-rw-r--r--os/vms/microvms.nix37
-rw-r--r--os/vms/net-core.nix30
-rw-r--r--os/vms/opnsense.nix95
3 files changed, 0 insertions, 162 deletions
diff --git a/os/vms/microvms.nix b/os/vms/microvms.nix
deleted file mode 100644
index e2e1a0f..0000000
--- a/os/vms/microvms.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- config,
- lib,
- inputs,
- ...
-}:
-let
- cfg = config.os.vms;
- sharedSecrets = [
- {
- tag = "shared-secrets";
- proto = "virtiofs";
- source = "/etc/nixos/secrets";
- mountPoint = "/etc/nixos/secrets";
- }
- ];
-in
-{
- imports = [ inputs.microvm.nixosModules.host ];
-
- options.os.vms = {
- net-core.enable = lib.mkEnableOption "enables the net-core virtual machine";
- };
-
- config = lib.mkMerge [
- (lib.mkIf cfg.net-core.enable {
- microvm.vms.net-core = {
- autostart = true;
- config = {
- imports = [ ../vms/net-core.nix ];
- microvm.shares = sharedSecrets;
- };
- };
- })
-
- ];
-}
diff --git a/os/vms/net-core.nix b/os/vms/net-core.nix
deleted file mode 100644
index a9a1c47..0000000
--- a/os/vms/net-core.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ pkgs, inputs, ... }:
-{
- system.stateVersion = "26.11";
-
- imports = [
- inputs.microvm.nixosModules.microvm
- ../core/default.nix
- ];
-
- os = {
- core = {
- allowUnfree.enable = true;
- locale.enable = true;
- };
- srv = {
- ssh = {
- server = {
- enable = true;
- microvm = true;
- };
- };
- firewall.enable = true;
- sops.enable = true;
- };
- };
-
- networking.hostName = "net-core";
-
- environment.systemPackages = [ pkgs.vis ];
-}
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);
- };
- };
- };
- };
-}