diff --git a/REUSE.toml b/REUSE.toml index fb57c300fa..7cd3dc651a 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -19,7 +19,7 @@ path = [ "modules/hardware/x86_64-generic/kernel/configs/ghaf_host_hardened_baseline-x86", "modules/reference/hardware/jetpack/ghaf_host_hardened_baseline-jetson-orin", "modules/lanzaboote/demo-secure-boot-keys/**/*", - "modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/*" + "modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/*" ] [[annotations]] @@ -99,7 +99,7 @@ path = [ "modules/reference/hardware/jetpack-microvm/*.patch", "modules/reference/hardware/jetpack/nvidia-jetson-orin/virtualization/passthrough/uarti-net-vm/patches/net_vm_dtb_with_uarti.patch", "modules/common/virtualization/pkvm/0001-pkvm-enable-pkvm-on-intel-x86-6.1-lts.patch", - "modules/microvm/virtualization/microvm/0001-x86-gpu-Don-t-reserve-stolen-memory-for-GPU-passthro.patch", + "modules/microvm/sysvms/0001-x86-gpu-Don-t-reserve-stolen-memory-for-GPU-passthro.patch", "modules/reference/hardware/jetpack/nvidia-jetson-orin/virtualization/passthrough/uarti-net-vm/tegra234-netvm.dts" ] diff --git a/modules/common/common.nix b/modules/common/common.nix index 28b35c6c18..fef935028f 100644 --- a/modules/common/common.nix +++ b/modules/common/common.nix @@ -13,8 +13,6 @@ let mkOption types optionalAttrs - optionalString - attrsets hasAttrByPath ; in diff --git a/modules/microvm/virtualization/microvm/appvm.nix b/modules/microvm/appvm.nix similarity index 99% rename from modules/microvm/virtualization/microvm/appvm.nix rename to modules/microvm/appvm.nix index 981723d11f..834935fdc5 100644 --- a/modules/microvm/virtualization/microvm/appvm.nix +++ b/modules/microvm/appvm.nix @@ -68,7 +68,7 @@ let }) # To push logs to central location - ../../../common/logging/client.nix + ../common/logging/client.nix ( { lib, @@ -168,7 +168,7 @@ let security.pki.certificateFiles = lib.mkIf configHost.ghaf.virtualization.microvm.idsvm.mitmproxy.enable - [ ./idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.pem ]; + [ ./sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.pem ]; time.timeZone = configHost.time.timeZone; @@ -223,7 +223,7 @@ let }; fileSystems."${configHost.ghaf.security.sshKeys.waypipeSshPublicKeyDir}".options = [ "ro" ]; - imports = [ ../../../common ]; + imports = [ ../common ]; } ) ]; diff --git a/modules/microvm/virtualization/microvm/common/ghaf-audio.nix b/modules/microvm/common/ghaf-audio.nix similarity index 100% rename from modules/microvm/virtualization/microvm/common/ghaf-audio.nix rename to modules/microvm/common/ghaf-audio.nix diff --git a/modules/microvm/virtualization/microvm/common/shared-directory.nix b/modules/microvm/common/shared-directory.nix similarity index 100% rename from modules/microvm/virtualization/microvm/common/shared-directory.nix rename to modules/microvm/common/shared-directory.nix diff --git a/modules/microvm/virtualization/microvm/common/storagevm.nix b/modules/microvm/common/storagevm.nix similarity index 100% rename from modules/microvm/virtualization/microvm/common/storagevm.nix rename to modules/microvm/common/storagevm.nix diff --git a/modules/microvm/virtualization/microvm/common/vm-networking.nix b/modules/microvm/common/vm-networking.nix similarity index 100% rename from modules/microvm/virtualization/microvm/common/vm-networking.nix rename to modules/microvm/common/vm-networking.nix diff --git a/modules/microvm/virtualization/microvm/common/waypipe.nix b/modules/microvm/common/waypipe.nix similarity index 100% rename from modules/microvm/virtualization/microvm/common/waypipe.nix rename to modules/microvm/common/waypipe.nix diff --git a/modules/microvm/virtualization/microvm/common/xdghandlers.nix b/modules/microvm/common/xdghandlers.nix similarity index 100% rename from modules/microvm/virtualization/microvm/common/xdghandlers.nix rename to modules/microvm/common/xdghandlers.nix diff --git a/modules/microvm/virtualization/microvm/common/xdgitems.nix b/modules/microvm/common/xdgitems.nix similarity index 100% rename from modules/microvm/virtualization/microvm/common/xdgitems.nix rename to modules/microvm/common/xdgitems.nix diff --git a/modules/microvm/flake-module.nix b/modules/microvm/flake-module.nix index 6350ff6a43..2a5f7981d5 100644 --- a/modules/microvm/flake-module.nix +++ b/modules/microvm/flake-module.nix @@ -5,15 +5,15 @@ flake.nixosModules = { microvm.imports = [ inputs.microvm.nixosModules.host - (import ./virtualization/microvm/microvm-host.nix { inherit inputs; }) - (import ./virtualization/microvm/netvm.nix { inherit inputs; }) - (import ./virtualization/microvm/adminvm.nix { inherit inputs; }) - (import ./virtualization/microvm/appvm.nix { inherit inputs; }) - (import ./virtualization/microvm/guivm.nix { inherit inputs; }) - (import ./virtualization/microvm/audiovm.nix { inherit inputs; }) - (import ./virtualization/microvm/idsvm/idsvm.nix { inherit inputs; }) - ./virtualization/microvm/idsvm/mitmproxy - ./virtualization/microvm/modules.nix + (import ./microvm-host.nix { inherit inputs; }) + (import ./sysvms/netvm.nix { inherit inputs; }) + (import ./sysvms/adminvm.nix { inherit inputs; }) + (import ./appvm.nix { inherit inputs; }) + (import ./sysvms/guivm.nix { inherit inputs; }) + (import ./sysvms/audiovm.nix { inherit inputs; }) + (import ./sysvms/idsvm/idsvm.nix { inherit inputs; }) + ./sysvms/idsvm/mitmproxy + ./modules.nix ./networking.nix ./power-control.nix ../hardware/common/shared-mem.nix diff --git a/modules/microvm/virtualization/microvm/microvm-host.nix b/modules/microvm/microvm-host.nix similarity index 96% rename from modules/microvm/virtualization/microvm/microvm-host.nix rename to modules/microvm/microvm-host.nix index 6dd12be552..b02cb7e52e 100644 --- a/modules/microvm/virtualization/microvm/microvm-host.nix +++ b/modules/microvm/microvm-host.nix @@ -25,7 +25,6 @@ let config.ghaf.hardware.definition.audio.rescanPciDevice else config.ghaf.hardware.definition.audio.removePciDevice; - vinotify = pkgs.callPackage ../../../../packages/vinotify { }; in { imports = [ @@ -159,7 +158,7 @@ in Type = "simple"; Restart = "always"; RestartSec = "1"; - ExecStart = "${vinotify}/bin/vinotify --cid ${toString config.ghaf.virtualization.microvm.guivm.vsockCID} --port 2000 --path /persist/storagevm/shared/shares --mode host"; + ExecStart = "${pkgs.vinotify}/bin/vinotify --cid ${toString config.ghaf.virtualization.microvm.guivm.vsockCID} --port 2000 --path /persist/storagevm/shared/shares --mode host"; }; startLimitIntervalSec = 0; }; @@ -175,7 +174,7 @@ in Type = "simple"; Restart = "always"; RestartSec = "1"; - ExecStart = "${vinotify}/bin/vinotify --port 2000 --path /Shares --mode guest"; + ExecStart = "${pkgs.vinotify}/bin/vinotify --port 2000 --path /Shares --mode guest"; }; startLimitIntervalSec = 0; }; diff --git a/modules/microvm/virtualization/microvm/modules.nix b/modules/microvm/modules.nix similarity index 100% rename from modules/microvm/virtualization/microvm/modules.nix rename to modules/microvm/modules.nix diff --git a/modules/microvm/networking.nix b/modules/microvm/networking.nix index 3b175bb88d..a34d4bcc75 100644 --- a/modules/microvm/networking.nix +++ b/modules/microvm/networking.nix @@ -13,7 +13,7 @@ let mkIf optionals ; - sshKeysHelper = pkgs.callPackage ./virtualization/microvm/ssh-keys-helper.nix { inherit config; }; + sshKeysHelper = pkgs.callPackage ./ssh-keys-helper.nix { inherit config; }; inherit (config.ghaf.networking) hosts; inherit (config.networking) hostName; in diff --git a/modules/microvm/virtualization/microvm/ssh-keys-helper.nix b/modules/microvm/ssh-keys-helper.nix similarity index 100% rename from modules/microvm/virtualization/microvm/ssh-keys-helper.nix rename to modules/microvm/ssh-keys-helper.nix diff --git a/modules/microvm/virtualization/microvm/0001-x86-gpu-Don-t-reserve-stolen-memory-for-GPU-passthro.patch b/modules/microvm/sysvms/0001-x86-gpu-Don-t-reserve-stolen-memory-for-GPU-passthro.patch similarity index 100% rename from modules/microvm/virtualization/microvm/0001-x86-gpu-Don-t-reserve-stolen-memory-for-GPU-passthro.patch rename to modules/microvm/sysvms/0001-x86-gpu-Don-t-reserve-stolen-memory-for-GPU-passthro.patch diff --git a/modules/microvm/virtualization/microvm/adminvm.nix b/modules/microvm/sysvms/adminvm.nix similarity index 95% rename from modules/microvm/virtualization/microvm/adminvm.nix rename to modules/microvm/sysvms/adminvm.nix index d23b4a1371..eef7764f21 100644 --- a/modules/microvm/virtualization/microvm/adminvm.nix +++ b/modules/microvm/sysvms/adminvm.nix @@ -15,7 +15,7 @@ let imports = [ inputs.impermanence.nixosModules.impermanence inputs.self.nixosModules.givc-adminvm - (import ./common/vm-networking.nix { + (import ../common/vm-networking.nix { inherit config lib @@ -23,9 +23,9 @@ let ; }) # We need to retrieve mac address and start log aggregator - ../../../common/logging/hw-mac-retrieve.nix - ../../../common/logging/logs-aggregator.nix - ./common/storagevm.nix + ../../common/logging/hw-mac-retrieve.nix + ../../common/logging/logs-aggregator.nix + ../common/storagevm.nix ( { lib, ... }: { @@ -115,7 +115,7 @@ let writableStoreOverlay = lib.mkIf config.ghaf.development.debug.tools.enable "/nix/.rw-store"; }; - imports = [ ../../../common ]; + imports = [ ../../common ]; } ) ]; diff --git a/modules/microvm/virtualization/microvm/audiovm.nix b/modules/microvm/sysvms/audiovm.nix similarity index 96% rename from modules/microvm/virtualization/microvm/audiovm.nix rename to modules/microvm/sysvms/audiovm.nix index b9b1b5841f..c6cf0b32c6 100644 --- a/modules/microvm/virtualization/microvm/audiovm.nix +++ b/modules/microvm/sysvms/audiovm.nix @@ -15,19 +15,19 @@ let imports = [ inputs.self.nixosModules.givc-audiovm inputs.impermanence.nixosModules.impermanence - (import ./common/vm-networking.nix { + (import ../common/vm-networking.nix { inherit config lib vmName ; }) - ./common/storagevm.nix - ../../../common/logging/client.nix + ../common/storagevm.nix + ../../common/logging/client.nix ( { lib, pkgs, ... }: { - imports = [ ../../../common ]; + imports = [ ../../common ]; ghaf = { # Profiles diff --git a/modules/microvm/virtualization/microvm/guivm.nix b/modules/microvm/sysvms/guivm.nix similarity index 94% rename from modules/microvm/virtualization/microvm/guivm.nix rename to modules/microvm/sysvms/guivm.nix index ea04d55689..963117d985 100644 --- a/modules/microvm/virtualization/microvm/guivm.nix +++ b/modules/microvm/sysvms/guivm.nix @@ -9,12 +9,12 @@ }: let vmName = "gui-vm"; - inherit (import ../../../../lib/launcher.nix { inherit pkgs lib; }) rmDesktopEntries; + inherit (import ../../../lib/launcher.nix { inherit pkgs lib; }) rmDesktopEntries; guivmBaseConfiguration = { imports = [ inputs.impermanence.nixosModules.impermanence inputs.self.nixosModules.givc-guivm - (import ./common/vm-networking.nix { + (import ../common/vm-networking.nix { inherit config lib @@ -22,13 +22,13 @@ let ; }) - ./common/storagevm.nix - ./common/xdgitems.nix + ../common/storagevm.nix + ../common/xdgitems.nix # To push logs to central location - ../../../common/logging/client.nix + ../../common/logging/client.nix - ../../../common/logging/hw-mac-retrieve.nix + ../../common/logging/hw-mac-retrieve.nix ( { lib, pkgs, ... }: @@ -57,9 +57,10 @@ let in { imports = [ - ../../../common - ../../../desktop - ../../../reference/services + ../../common + ../../desktop + #TODO: inception cross reference. FIX: this + ../../reference/services ]; ghaf = { @@ -288,9 +289,10 @@ let }; cfg = config.ghaf.virtualization.microvm.guivm; + #TODO: fix the kernel includes and builders to be more modular and centrailized # Importing kernel builder function and building guest_graphics_hardened_kernel - buildKernel = import ../../../../packages/kernel { inherit config pkgs lib; }; - config_baseline = ../../../hardware/x86_64-generic/kernel/configs/ghaf_host_hardened_baseline-x86; + buildKernel = import ../../../packages/kernel { inherit config pkgs lib; }; + config_baseline = ../../hardware/x86_64-generic/kernel/configs/ghaf_host_hardened_baseline-x86; guest_graphics_hardened_kernel = buildKernel { inherit config_baseline; }; in diff --git a/modules/microvm/virtualization/microvm/idsvm/idsvm.nix b/modules/microvm/sysvms/idsvm/idsvm.nix similarity index 96% rename from modules/microvm/virtualization/microvm/idsvm/idsvm.nix rename to modules/microvm/sysvms/idsvm/idsvm.nix index 4ab73d7e17..44af83776a 100644 --- a/modules/microvm/virtualization/microvm/idsvm/idsvm.nix +++ b/modules/microvm/sysvms/idsvm/idsvm.nix @@ -12,11 +12,10 @@ let vmName = "ids-vm"; idsvmBaseConfiguration = { imports = [ - (import ../common/vm-networking.nix { + (import ../../common/vm-networking.nix { inherit config lib - pkgs vmName ; }) @@ -64,7 +63,7 @@ let }; imports = [ - ../../../../common + ../../../common ./mitmproxy ]; } diff --git a/modules/microvm/virtualization/microvm/idsvm/mitmproxy/default.nix b/modules/microvm/sysvms/idsvm/mitmproxy/default.nix similarity index 100% rename from modules/microvm/virtualization/microvm/idsvm/mitmproxy/default.nix rename to modules/microvm/sysvms/idsvm/mitmproxy/default.nix diff --git a/modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.cer b/modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.cer similarity index 100% rename from modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.cer rename to modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.cer diff --git a/modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.p12 b/modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.p12 similarity index 100% rename from modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.p12 rename to modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.p12 diff --git a/modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.pem b/modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.pem similarity index 100% rename from modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.pem rename to modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca-cert.pem diff --git a/modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca.p12 b/modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca.p12 similarity index 100% rename from modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca.p12 rename to modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca.p12 diff --git a/modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca.pem b/modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca.pem similarity index 100% rename from modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca.pem rename to modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-ca.pem diff --git a/modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-dhparam.pem b/modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-dhparam.pem similarity index 100% rename from modules/microvm/virtualization/microvm/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-dhparam.pem rename to modules/microvm/sysvms/idsvm/mitmproxy/mitmproxy-ca/mitmproxy-dhparam.pem diff --git a/modules/microvm/virtualization/microvm/netvm.nix b/modules/microvm/sysvms/netvm.nix similarity index 97% rename from modules/microvm/virtualization/microvm/netvm.nix rename to modules/microvm/sysvms/netvm.nix index 87861217e1..8e6c6af0d8 100644 --- a/modules/microvm/virtualization/microvm/netvm.nix +++ b/modules/microvm/sysvms/netvm.nix @@ -12,7 +12,7 @@ let imports = [ inputs.impermanence.nixosModules.impermanence inputs.self.nixosModules.givc-netvm - (import ./common/vm-networking.nix { + (import ../common/vm-networking.nix { inherit config lib @@ -21,14 +21,14 @@ let isGateway = true; }) - ./common/storagevm.nix + ../common/storagevm.nix # To push logs to central location - ../../../common/logging/client.nix + ../../common/logging/client.nix ( { lib, ... }: { - imports = [ ../../../common ]; + imports = [ ../../common ]; ghaf = { # Profiles diff --git a/modules/reference/services/chromecast/chromecast-config.nix b/modules/reference/services/chromecast/chromecast-config.nix index 894f8e521b..489f380d50 100644 --- a/modules/reference/services/chromecast/chromecast-config.nix +++ b/modules/reference/services/chromecast/chromecast-config.nix @@ -12,7 +12,7 @@ internalNic = let - vmNetworking = import ../../../microvm/virtualization/microvm/common/vm-networking.nix { + vmNetworking = import ../../../microvm/common/vm-networking.nix { inherit config; inherit lib; vmName = "net-vm"; diff --git a/modules/reference/services/dendrite-pinecone/dendrite-config.nix b/modules/reference/services/dendrite-pinecone/dendrite-config.nix index dc0cd7d2fc..ccb7fd89f2 100644 --- a/modules/reference/services/dendrite-pinecone/dendrite-config.nix +++ b/modules/reference/services/dendrite-pinecone/dendrite-config.nix @@ -17,7 +17,7 @@ internalNic = let - vmNetworking = import ../../../microvm/virtualization/microvm/common/vm-networking.nix { + vmNetworking = import ../../../microvm/common/vm-networking.nix { inherit config lib pkgs; vmName = "net-vm"; }; diff --git a/packages/own-pkgs-overlay.nix b/packages/own-pkgs-overlay.nix index 0279c141d7..5151f50b8e 100644 --- a/packages/own-pkgs-overlay.nix +++ b/packages/own-pkgs-overlay.nix @@ -27,6 +27,7 @@ open-normal-extension = final.callPackage ./pkgs-by-name/open-normal-extension/package.nix { }; qemuqmp = final.callPackage ./pkgs-by-name/qemuqmp/package.nix { }; vhotplug = final.callPackage ./pkgs-by-name/vhotplug/package.nix { }; + vinotify = final.callPackage ./pkgs-by-name/vinotify/package.nix { }; vsockproxy = final.callPackage ./pkgs-by-name/vsockproxy/package.nix { }; windows-launcher = final.callPackage ./pkgs-by-name/windows-launcher/package.nix { }; }; diff --git a/packages/vinotify/default.nix b/packages/pkgs-by-name/vinotify/package.nix similarity index 100% rename from packages/vinotify/default.nix rename to packages/pkgs-by-name/vinotify/package.nix diff --git a/packages/vinotify/vinotify/requirements.txt b/packages/pkgs-by-name/vinotify/vinotify/requirements.txt similarity index 100% rename from packages/vinotify/vinotify/requirements.txt rename to packages/pkgs-by-name/vinotify/vinotify/requirements.txt diff --git a/packages/vinotify/vinotify/setup.py b/packages/pkgs-by-name/vinotify/vinotify/setup.py similarity index 100% rename from packages/vinotify/vinotify/setup.py rename to packages/pkgs-by-name/vinotify/vinotify/setup.py diff --git a/packages/vinotify/vinotify/vinotify/__init__.py b/packages/pkgs-by-name/vinotify/vinotify/vinotify/__init__.py similarity index 100% rename from packages/vinotify/vinotify/vinotify/__init__.py rename to packages/pkgs-by-name/vinotify/vinotify/vinotify/__init__.py diff --git a/packages/vinotify/vinotify/vinotify/vinotify.py b/packages/pkgs-by-name/vinotify/vinotify/vinotify/vinotify.py similarity index 100% rename from packages/vinotify/vinotify/vinotify/vinotify.py rename to packages/pkgs-by-name/vinotify/vinotify/vinotify/vinotify.py