Skip to main content

Overview

SUNK v8.2.0 was released on October 23, 2026. It ships with Slurm 25.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

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.
If you upgrade the slurm chart before the sunk chart, the new scheduler Pod restarts repeatedly until the operator is upgraded, while the old scheduler Pod keeps running.

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.orphanJobSweep controls. See Run workloads with gang scheduling.
  • Login Pod topology spread: Login Pods now spread across nodes by default, with maxSkew: 1 on kubernetes.io/hostname. Set login.topologySpreadConstraints to 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, ulimit and umask settings, and the drain and undrain helpers load in both bash and zsh. To make zsh a user’s shell, set nsscache.defaultShell: /bin/zsh, or set the user’s sunkLoginShell attribute (SCIM) or loginShell attribute (LDAP). Slurm command completion remains bash-only. See Set the default shell.
  • OOM kill containment: When a login or slurmd container 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 before slurmd, so the container doesn’t restart. Compute containment requires cgroup v2.
  • NodeSet conditions and rendered spec: NodeSets report a PodSpecValid condition when the API server rejects a compute Pod, and a ComputeConfigValid condition when the SlurmCluster compute settings are invalid. The operator no longer patches NodeSet spec. It writes the effective Pod template to the read-only sunk.coreweave.com/rendered annotation instead, so GitOps tools stop reporting drift on NodeSets. Manual edits to operator-derived fields in spec, such as the slurmd image, are now ignored instead of reverted.
  • Clearer disk drain reasons: When the health check drains a node because / or /tmp is full, the drain reason starts with NHC: check_cw_fs_used: and lists the space that /tmp, /coredumps, and /opt/sunk use, largest first. The thresholds are unchanged.
  • Inode lock fixer on by default: New SlurmCluster resources enable the inode lock fixer for the managed database (database.mysqlCluster.inodeLockFixer in the slurm chart). Existing clusters keep their current setting.

Fixes

  • A running job submitted with more than one QoS keeps the QoS it started with when slurmctld restarts or reconfigures. Before 8.2, it could switch to the highest-priority QoS.
  • SUNK now sets RealMemory from the slurmd container’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 COMPLETING to DOWN. Before 8.2, its cleanup controller failed with slurm_update error: Invalid user id.
  • The reconfigure-watch, sync-users-from-system, and nsscache-update sidecars exit cleanly on shutdown. Before 8.2, they were killed at the end of the grace period, which delayed slurmctld teardown.
  • When compute.ssh.enabled is false, the operator deletes the compute sshd s6 ConfigMaps.
  • Argo CD no longer reports a permanent diff on the sunk controller manager Deployment.
Last modified on October 27, 2026