Restore openssl in Slurm runtime images - #2
Draft
jamesbeedy with Copilot wants to merge 17 commits into
Draft
jamesbeedy with Copilot wants to merge 17 commits into
jamesbeedy with Copilot wants to merge 17 commits into
Conversation
- Patch debian/control to add libs2n-dev to Build-Depends - Patch debian/rules to add --with-s2n to configure options - Update docker-bake.hcl to use ghcr.io/vantagecompute registry - Add GitHub Actions workflow for building and pushing images - Workflow builds slurmctld, slurmdbd, slurmrestd, slurmd, sackd, login This enables the tls_s2n.so plugin for encrypted SLURM communications.
The tag 25.11-latest doesn't exist on SchedMD/slurm. Use 25.11.2 which maps to tag slurm-25-11-2-1.tar.gz
s2n-tls is not available in Ubuntu 24.04 apt repos. Build from AWS GitHub repo as documented at https://slurm.schedmd.com/tls.html - Clone and build s2n-tls with cmake - Install shared libraries to /usr/local/lib - Copy libs2n.so to runtime images for tls_s2n.so plugin
The s2n-tls library is installed to /usr/local, so we need to pass --with-s2n=/usr/local to the configure script for SLURM to find it.
Configure's AC_RUN_IFELSE test needs libs2n.so in the library path. Also removed >/dev/null to see actual build errors.
dpkg-shlibdeps fails when libs2n.so is installed from source because there's no package dependency information. Set DEB_DH_SHLIBDEPS_ARGS_ALL to ignore-missing-info so the Debian packaging step completes successfully.
The DEB_DH_SHLIBDEPS_ARGS_ALL environment variable doesn't propagate through debuild to dh_shlibdeps. Instead, patch debian/rules directly with an override_dh_shlibdeps target to pass --ignore-missing-info for the libs2n.so dependency which is built from source.
Without priority being set, both would have the same default priority of 999, and it would be race on which started first. If fakesystemd started after slurmd, you would get an initial error from slurmd about failing to notify systemd about PID change.
Copilot
AI
changed the title
[WIP] Refactor s2n build logic and remove redundant package installation
Centralize s2n build plumbing and drop redundant OpenSSL deltas
Jun 7, 2026
Copilot
AI
changed the title
Centralize s2n build plumbing and drop redundant OpenSSL deltas
Restore openssl in Slurm runtime images
Jun 7, 2026
jamesbeedy
force-pushed
the
feat/tls_s2n_v2_sync_with_main
branch
from
June 7, 2026 21:08
7e7170f to
95ba78f
Compare
Copilot stopped work on behalf of
jamesbeedy due to an error
June 7, 2026 22:05
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The previous refactor dropped
opensslfrom the runtime debug package set on the assumption it was pulled in transitively. It isn't reliably present, so re-add it explicitly.opensslback to the debug install line in all six runtime Dockerfiles: 25.05, 25.11, and master acrossubuntu24.04androckylinux9.Breaking Changes
None.
Testing Notes
Build the affected flavors via
docker buildx bakeand confirmopensslis present in the final runtime image.Additional Context
Companion fix to the s2n shared-script refactor in the prior commit on this branch.
Original prompt
Create a pull request in repository
vantagecompute/slurm-containersbased on branchfeat/tls_s2n_v2_sync_with_main.Goal:
opensslto image runtime/debug package lists, since the rebased mainline branch already accounts for OpenSSL in the container builds.Context:
feat/tls_s2n_v2_sync_with_mainis a rebase-on-main branch.Requested changes:
apt/dnfpackage-install edits that addopensslwhere those edits are now redundant with main.Implementation guidance:
--with-s2nor runtime library handling unless replaced with an equivalent centralized approach.feat/tls_s2n_v2_sync_with_main.Deliverable:
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: possibly it is that we dont need our feat/tls_s2n_v2 to add openssl anymore because the slurm containers main branch now accounts for that - we are using this pr to rebase on main, what custom bits can we drop now that the containers build include openssl ?
Assistant: Yes — the main thing you can likely drop from
feat/tls_s2n_v2now is any custom OpenSSL installation/bootstrap logic, because this PR already rebases onto a mainline that addsopensslto the container runtime/debug packages across the images.What I see in PR #1:
opensslis now added directly in upstream container Dockerfiles for:schedmd/slurm/25.05/rockylinux9/Dockerfileschedmd/slurm/25.05/ubuntu24.04/Dockerfileschedmd/slurm/25.11/rockylinux9/Dockerfileschedmd/slurm/25.11/ubuntu24.04/Dockerfileschedmd/slurm/master/rockylinux9/Dockerfileschedmd/slurm/master/ubuntu24.04/Dockerfileopensslpackages in those images, that part is now redundant.What probably can be dropped from your custom branch:
Any
apt-get install openssl/dnf install openssladditionsopensslCLI/libs available, main now covers that.Any duplicate runtime-only OpenSSL dependency wiring
Any image flavor/version-specific OpenSSL deltas
25.05,25.11,master, Ubuntu, Rocky, those should be rechecked because upstream now applies them broadly.What you probably should not drop just because OpenSSL is present:
s2n-tls build/install logic
schedmd/slurm/25.11/ubuntu24.04/Dockerfile, this PR still contains custom logic to:libssl-dev,cmake,gitaws/s2n-tlslibs2n.sodebian/ruleswith--with-s2n=/usr/localdh_shlibdepsoverridelibs2n.so*into the runtime imageopenssl.Anything specifically needed for
tls_s2n.so--with-s2nsupport.Non-OpenSSL customizations
sssd-clientadditionspriority=1supervisor changesdbus.iniMy practical recommendation:
feat/tls_s2n_v2branch against this rule:opensslin image”.This pull request was created from Copilot chat.