diff options
Diffstat (limited to 'modules/nixos/traits/containers.nix')
| -rw-r--r-- | modules/nixos/traits/containers.nix | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/modules/nixos/traits/containers.nix b/modules/nixos/traits/containers.nix index 10824eb..5170c34 100644 --- a/modules/nixos/traits/containers.nix +++ b/modules/nixos/traits/containers.nix @@ -6,35 +6,29 @@ ... }: let cfg = config.traits.containers; + enableNvidia = lib.elem "nvidia" (config.services.xserver.videoDrivers or []); in { options.traits.containers = { enable = lib.mkEnableOption "containers support"; }; - config.virtualisation = lib.mkIf cfg.enable ( + config = lib.mkIf cfg.enable ( lib.mkMerge [ { - podman = { - enable = true; - extraPackages = with pkgs; [podman-compose]; - autoPrune.enable = true; - }; + virtualisation = { + podman = { + enable = true; + extraPackages = with pkgs; [podman-compose]; + autoPrune.enable = true; + }; - oci-containers.backend = "podman"; + oci-containers.backend = "podman"; + }; } - (let - enable = lib.mkDefault ( - lib.elem "nvidia" (config.services.xserver.videoDrivers or []) - ); - in - if (options.virtualisation.containers ? cdi) - then { - containers.cdi.dynamic.nvidia = {inherit enable;}; - } - else { - podman.enableNvidia = enable; - }) + (lib.mkIf enableNvidia { + hardware.nvidia-container-toolkit.enable = true; + }) ] ); } |
