Nix-Config/modules/k3s/daemon-sets/fuse-devPlug.nix
2026-07-03 08:43:44 -05:00

105 lines
No EOL
2.7 KiB
Nix

{ ... }:
{
fuse-devPlug.content = [
{
apiVersion = "apps/v1";
kind = "DaemonSet";
metadata = {
name = "generic-device-plugin";
namespace = "kube-system";
labels = {
"app.kubernetes.io/name" = "generic-device-plugin";
};
};
spec = {
selector = {
matchLabels = {
"app.kubernetes.io/name" = "generic-device-plugin";
};
};
template = {
metadata = {
labels = {
"app.kubernetes.io/name" = "generic-device-plugin";
};
};
spec = {
priorityClassName = "system-node-critical";
tolerations = [
{
operator = "Exists";
effect = "NoExecute";
}
{
operator = "Exists";
effect = "NoSchedule";
}
];
containers = [
{
image = "squat/generic-device-plugin";
args = [
"--device"
''
name: fuse
groups:
- count: 10
paths:
- path: /dev/fuse
''
];
name = "generic-device-plugin";
resources = {
requests = {
cpu = "50m";
memory = "10Mi";
};
limits = {
cpu = "50m";
memory = "20Mi";
};
};
ports = [
{
containerPort = 8080;
name = "http";
}
];
securityContext = {
privileged = true;
};
volumeMounts = [
{
name = "device-plugin";
mountPath = "/var/lib/kubelet/device-plugins";
}
{
name = "dev";
mountPath = "/dev";
}
];
}
];
volumes = [
{
name = "device-plugin";
hostPath = {
path = "/var/lib/kubelet/device-plugins";
};
}
{
name = "dev";
hostPath = {
path = "/dev";
};
}
];
};
};
updateStrategy = {
type = "RollingUpdate";
};
};
}
];
}