Overview
SUNK v8.2.0 was released on October 23, 2026. It ships with Slurm25.11.8-coreweave.2 by default, up from 25.11.8-coreweave.1 in SUNK 8.1. See SUNK to Slurm version mapping.
The main additions in 8.2 are gang scheduling for Kubernetes Jobs and LeaderWorkerSets through the SUNK Pod Scheduler, and a move from a generated topology.conf to a generated topology.yaml. The release also limits out-of-memory (OOM) kills in login and compute Pods to a single process, adds zsh to the login image, and changes several defaults.
Before you upgrade, review Changes to check before you upgrade.
Upgrade to 8.2
- SUNK Standard
Before you upgrade, check your
slurm chart values for the settings in Changes to check before you upgrade.Upgrade the sunk chart to 8.2.0 first, then the slurm chart. The 8.2 scheduler drops the --slurm-kill-wait flag that the 8.1 operator passes to it.Changes to check before you upgrade
New in 8.2
- Gang scheduling for Jobs and LeaderWorkerSets: The SUNK Pod Scheduler schedules the Pods of a Kubernetes Job, or of each LeaderWorkerSet replica group, together as one Slurm job. As a result, a workload starts only when all of its Pods can run. No annotation is needed. The scheduler automatically cancels orphaned placeholder jobs, which
scheduler.config.scheduler.orphanJobSweepcontrols. See Run workloads with gang scheduling. - Login Pod topology spread: Login Pods now spread across nodes by default, with
maxSkew: 1onkubernetes.io/hostname. Setlogin.topologySpreadConstraintsto replace the default, or set it to[]to turn it off. The change takes effect when a login Pod is recreated. - zsh on login Pods: The login image now includes zsh. SUNK’s aliases,
ulimitandumasksettings, and thedrainandundrainhelpers load in both bash and zsh. To make zsh a user’s shell, setnsscache.defaultShell: /bin/zsh, or set the user’ssunkLoginShellattribute (SCIM) orloginShellattribute (LDAP). Slurm command completion remains bash-only. See Set the default shell. - OOM kill containment: When a login or
slurmdcontainer runs out of memory, the kernel now kills a single process instead of the whole container, and SSH sessions are killed first. On compute nodes, jobs are killed beforeslurmd, so the container doesn’t restart. Compute containment requires cgroup v2. - NodeSet conditions and rendered spec: NodeSets report a
PodSpecValidcondition when the API server rejects a compute Pod, and aComputeConfigValidcondition when theSlurmClustercompute settings are invalid. The operator no longer patches NodeSetspec. It writes the effective Pod template to the read-onlysunk.coreweave.com/renderedannotation instead, so GitOps tools stop reporting drift on NodeSets. Manual edits to operator-derived fields inspec, such as theslurmdimage, are now ignored instead of reverted. - Clearer disk drain reasons: When the health check drains a node because
/or/tmpis full, the drain reason starts withNHC: check_cw_fs_used:and lists the space that/tmp,/coredumps, and/opt/sunkuse, largest first. The thresholds are unchanged. - Inode lock fixer on by default: New
SlurmClusterresources enable the inode lock fixer for the managed database (database.mysqlCluster.inodeLockFixerin theslurmchart). Existing clusters keep their current setting.
Fixes
- A running job submitted with more than one QoS keeps the QoS it started with when
slurmctldrestarts or reconfigures. Before 8.2, it could switch to the highest-priority QoS. - SUNK now sets
RealMemoryfrom theslurmdcontainer’s memory limit, minus reserved memory, instead of the node type’s hardware memory. Full-node jobs on NodeSets whose memory limit is lower than the node type’s memory now schedule. - SUNK can now set a node stuck in
COMPLETINGtoDOWN. Before 8.2, its cleanup controller failed withslurm_update error: Invalid user id. - The
reconfigure-watch,sync-users-from-system, andnsscache-updatesidecars exit cleanly on shutdown. Before 8.2, they were killed at the end of the grace period, which delayedslurmctldteardown. - When
compute.ssh.enabledisfalse, the operator deletes the computesshds6 ConfigMaps. - Argo CD no longer reports a permanent diff on the
sunkcontroller manager Deployment.