summaryrefslogtreecommitdiff
path: root/modules/nixos
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos')
-rw-r--r--modules/nixos/traits/containers.nix33
1 files changed, 24 insertions, 9 deletions
diff --git a/modules/nixos/traits/containers.nix b/modules/nixos/traits/containers.nix
index 43c748c..e309a89 100644
--- a/modules/nixos/traits/containers.nix
+++ b/modules/nixos/traits/containers.nix
@@ -1,6 +1,7 @@
{
config,
lib,
+ options,
pkgs,
...
}: let
@@ -10,14 +11,28 @@ in {
enable = lib.mkEnableOption "containers support";
};
- config.virtualisation = lib.mkIf cfg.enable {
- podman = {
- enable = true;
- enableNvidia = lib.mkDefault (builtins.elem "nvidia" (config.services.xserver.videoDrivers or []));
- extraPackages = with pkgs; [podman-compose];
- autoPrune.enable = true;
- };
+ config.virtualisation = lib.mkMerge [
+ (lib.mkIf cfg.enable {
+ 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;
+ })
+ ];
}