dotfiles/nixos/k3s.nix

65 lines
1.9 KiB
Nix
Raw Normal View History

{ config, lib, ... }:
with lib;
let cfg = config.myModules.railbird-k3s;
in {
options = {
2024-09-30 16:42:58 -06:00
myModules.railbird-k3s = {
enable = mkEnableOption "railbird k3s";
serverAddr = mkOption {
type = lib.types.str;
default = "";
};
};
};
2024-09-30 16:42:58 -06:00
config = mkIf cfg.enable {
age.secrets."1896Folsom-k3s-token.age".file = ./secrets/1896Folsom-k3s-token.age;
age.secrets."k3s-registry.yaml.age".file = ./secrets/k3s-registry.yaml.age;
environment.etc."rancher/k3s/registries.yaml".source = config.age.secrets."k3s-registry.yaml.age".path;
services.dockerRegistry = {
enable = true;
listenAddress = "0.0.0.0";
port = 5279;
enableDelete = true;
enableGarbageCollect = true;
};
2024-10-02 15:43:59 -06:00
virtualisation.containerd = {
enable = true;
settings = {
plugins."io.containerd.grpc.v1.cri" = {
enable_cdi = true;
cdi_spec_dirs = [ "/var/run/cdi" ];
};
};
};
services.k3s = {
enable = true;
clusterInit = cfg.serverAddr == "";
serverAddr = cfg.serverAddr;
tokenFile = config.age.secrets."1896Folsom-k3s-token.age".path;
2024-09-30 17:15:13 -06:00
extraFlags = [
2024-09-30 17:23:42 -06:00
"--tls-san ryzen-shine.local"
"--tls-san nixquick.local"
"--tls-san biskcomp.local"
"--tls-san jimi-hendnix.local"
"--tls-san dev.railbird.ai"
"--node-label nixos-nvidia-cdi=enabled"
2024-09-30 17:15:13 -06:00
];
containerdConfigTemplate = ''
{{ template "base" . }}
2024-09-30 00:05:50 -06:00
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
privileged_without_host_devices = false
runtime_engine = ""
runtime_root = ""
runtime_type = "io.containerd.runc.v2"
2024-09-30 00:05:50 -06:00
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
BinaryName = "/run/current-system/sw/bin/nvidia-container-runtime"
'';
gracefulNodeShutdown = {
enable = true;
};
2024-09-30 00:05:50 -06:00
};
};
}