- SUNK 7.x and earlier: Configure individual login pods through the
slurm-loginsubchart of the Slurm chart, as described on this page. - SUNK 8.0 and later
- Deployed with Helm: The
slurm-loginsubchart no longer exists. Login configuration is part of theslurmchart, underlogin.login.commonsets the base for both kinds of pod,login.userPodsandlogin.groupPodsoverride that base per kind, and each entry inlogin.groupspicks which kinds a group gets. See Login capacity is provisioned per user and per group. - Deployed with the
SunkClusterCR: Configure login pods declaratively on theSunkClusterresource underspec.login, whereuserPodscreates a per-user login pod for each member of a group andgroupPodcreates a shared per-group pod. See Create a SUNK Self-Service cluster and theSunkClusterreference.
- Deployed with Helm: The
The
slurm-login parameters on this page apply to SUNK 7.x and earlier. SUNK 8.0 deleted that subchart, along with its directoryCache and its SSSD support. The sections on SSH exposure, the default shell, and conda apply to every version and deployment path.slurm-login path, pass these configuration values from the values.yaml of the Slurm chart to define how slurm-login integrates and functions.
Prerequisites
Before you configure individual login pods, make sure you have:- A SUNK 7.x or earlier cluster deployed and managed through the Slurm Helm charts. SUNK 8.0 and later use the paths listed in the preceding note.
- Access to edit the Slurm chart’s
values.yaml, where you set theslurm-loginparameters. - A directory service configured for user identities, either
nsscachefor SCIM or SSSD for LDAP. See manage users withnsscacheand manage users with a directory service. - The user groups you want to grant access to, defined in that directory service, so you can reference them in
slurm-login.directoryCache.selectGroups. kubectlaccess to the cluster to verify the resulting StatefulSets and Services.
Manage individual login pods
You can enable, reboot, and access individual login pods using the following capabilities:-
Enable the deployment of the subchart: To enable the
slurm-logincapability as part of the Slurm chart, set theslurm-login.enabledparameter totrue. -
Reboot individual login pods: If an individual login pod is out of sync with the underlying StatefulSet, run the
rebootcommand from within the pod. This command deletes and recreates the pod using the updated version. If the pod is out of sync, a Message of the Day (MOTD) appears at SSH login with instructions to reboot: - Access individual login pods: For instructions on accessing each individual Slurm login pod and running Slurm jobs, refer to Connect to a Slurm login node.
Expose SSH access
You can expose login pod SSH access two ways, with a security tradeoff:- Public LoadBalancer: The login pod gets a public, internet-routable IP. This is the simplest connectivity, but it exposes SSH to internet scanning and brute-force attempts. Harden it, for example, by disabling password authentication through
login.sshdConfig. Note that a NetworkPolicy doesn’t filter traffic arriving through the LoadBalancer, so it can’t be used to restrict which addresses reach the pod. - Tailscale: The login pod stays on a private overlay network with no public exposure. This is the more secure posture, at the cost of running and managing Tailscale.
sshd hardening as defense in depth.
Set the default shell
Set the default shell through your directory service rather thanchsh. A directory service provisions login pod users, not local /etc/passwd, so chsh doesn’t work.
A user who wants a different interactive shell can exec it from their ~/.bashrc as a self-service workaround. The exec line must come after the interactive-shell guard. Placed before it, it hangs SCP, SFTP, rsync, and git-over-SSH, because those sessions source ~/.bashrc and then wait forever on the new shell:
Avoid conda breaking system binaries
A common support pattern: After a user activates a conda environment, system tools such asgit, ssh, and curl fail with errors such as an OpenSSL version mismatch or “Could not read from remote repository.” This looks like a network or authentication problem but is a library conflict.
The cause is that conda’s activation prepends conda’s lib directory to LD_LIBRARY_PATH, so system binaries load conda’s libraries instead of the system ones. conda deactivate doesn’t always clean it up.
Recommend that users keep conda opt-in inside compute jobs rather than autoactivating it in ~/.bashrc on the login pod, which would break system binaries for every interactive shell. Workarounds for an affected command include installing the tool into the conda environment (conda install -n [ENV] git), or running the system binary with a cleared path (LD_LIBRARY_PATH= /usr/bin/git ...).
A shared login pod is a single memory cgroup shared by every user’s interactive processes. Heavy interactive work, such as an IDE remote-server process plus interactive Python, can OOM-kill the whole sshd tree and drop every session at once. Prefer per-user pods and direct heavy work to
srun and sbatch rather than the login pod. For memory accounting and limits on compute nodes, see Diagnose unexplained memory pressure on a SUNK node.Manage user identities and provision resources
Theslurm-login.directoryCache parameter defines the directory service configuration used for managing user identities and provisioning resources. The following sections describe its key sub-values.
Select users by group
slurm-login.directoryCache.selectGroups provides a list of user groups, from which the slurm-login chart retrieves all associated users. This acts as a filter, so it includes only users that belong to one of the specified groups. It uses OR logic, so a user must be in at least one of the listed groups to be selected.
Define the polling interval
slurm-login.directoryCache.interval defines the polling interval for detecting changes to users and user groups and applying the corresponding resource updates. The value is a duration with a unit, such as 30s or 1m, and defaults to 90 seconds when unset. For more information, see directoryCache.interval in the Slurm login parameter reference.
List directory services
slurm-login.directoryCache.directoryService.directories specifies a list of directory services to configure. This is similar to the directoryService configuration in Slurm and can be duplicated or referenced using a YAML anchor for reuse.
Example nsscache configuration
The following shows a typical nsscache configuration:nsscache for instructions on configuring nsscache.
Example SSSD configuration
The following shows a typical SSSD configuration:Verify individual Slurm login resources
To verify created resources, use the StatefulSets and Services as shown in the following commands.slurm-login Service.
Parameter reference table
The following table summarizes theslurm-login parameters described in the preceding sections for quick reference.
For the full list of
slurm-login parameters, see the Slurm login parameter reference.