Add support for nvidia

This commit is contained in:
2025-09-22 20:39:01 +08:00
parent 300abfff49
commit b363cc4405
3 changed files with 46 additions and 24 deletions

View File

@@ -19,7 +19,7 @@ in
home.packages = with pkgs; [
zsh-completions
fd
htop
btop
ripgrep
wget
delta

View File

@@ -6,7 +6,12 @@
}:
let
cfg = config.my_k3s;
inherit (lib) mkEnableOption mkIf mkOption;
inherit (lib)
mkEnableOption
mkIf
mkOption
mkMerge
;
types = lib.types;
in
{
@@ -29,26 +34,44 @@ in
};
extraFlags = mkOption {
type = types.listOf types.str;
default = [];
default = [ ];
};
nvidia = mkOption {
type = types.bool;
default = false;
};
};
config = mkIf cfg.enable {
services.k3s = {
enable = true;
role = cfg.role;
tokenFile = cfg.tokenFile;
clusterInit = cfg.clusterInit;
serverAddr = cfg.serverAddr;
extraFlags = cfg.extraFlags;
};
environment.systemPackages = [ pkgs.nfs-utils ];
services.openiscsi = {
enable = true;
name = "iqn.2016-04.com.open-iscsi:${config.networking.hostName}";
};
systemd.tmpfiles.rules = [
"L+ /usr/local/bin - - - - /run/current-system/sw/bin/"
];
};
config = mkIf cfg.enable (mkMerge [
{
services.k3s = {
enable = true;
role = cfg.role;
tokenFile = cfg.tokenFile;
clusterInit = cfg.clusterInit;
serverAddr = cfg.serverAddr;
extraFlags = cfg.extraFlags;
};
environment.systemPackages = [ pkgs.nfs-utils ];
services.openiscsi = {
enable = true;
name = "iqn.2016-04.com.open-iscsi:${config.networking.hostName}";
};
systemd.tmpfiles.rules = [
"L+ /usr/local/bin - - - - /run/current-system/sw/bin/"
];
}
(mkIf cfg.nvidia {
hardware.nvidia-container-toolkit.enable = true;
hardware.nvidia-container-toolkit.mount-nvidia-executables = true;
# virtualisation.docker = {
# enable = true;
# enableNvidia = true;
# };
environment.systemPackages = with pkgs; [
nvidia-container-toolkit
];
})
]);
}