{ pkgs, lib, config, nodes, ... }: with lib; { services.slurm = { clusterName = "mogli"; controlMachine = "manager"; nodeName = map (node: "${node.config.networking.hostName} CPUs=32") (filter # Filter all nodes that have a tag "node" being a compute node (node: elem "node" node.config.deployment.tags) (attrValues nodes)); partitionName = [ "all Nodes=ALL AllowGroups=cluster Default=YES MaxTime=6:00:00 State=UP" "vip Nodes=ALL AllowGroups=vip Default=NO MaxTime=INFINITE State=UP" ]; }; services.munge = { enable = true; password = config.sops.secrets."munge/password".path; }; sops.secrets."munge/password" = { sopsFile = ./secrets.yaml; owner = "munge"; }; # Have a VIP group for users with unlimited queues users.groups."vip" = { members = [ "fdai2856" "fdai0159" "fdai0231" ]; }; }