Build Artifacts
Slurm Factory produces two types of artifacts: relocatable tarballs for direct deployment and Spack buildcache packages for fast installation. Both are published to Amazon S3 for global distribution.
Artifact Types
1. Relocatable Tarballs
Purpose: Complete, self-contained Slurm installations ready to extract and deploy
Location: s3://slurm-factory-spack-buildcache-4b670/{toolchain}/{slurm_version}/{architecture}/
Format: Single tarball containing Slurm binaries, modules, and installation scripts
Use Cases:
- Quick deployment on any Linux system
- Air-gapped installations (download once, deploy offline)
- Container base images
- Infrastructure automation (Ansible, Terraform)
2. Spack Buildcache Packages
Purpose: Binary package cache for Spack to enable fast installations
Location: s3://slurm-factory-spack-buildcache-4b670/
Format: Spack buildcache directory with GPG-signed packages
Use Cases:
- Fast Spack-based installations (5-15 minutes)
- Custom Slurm builds with modified dependencies
- Development and testing environments
- CI/CD pipelines
Tarball Structure
Each build produces one tarball containing:
slurm-{version}-{toolchain}-{architecture}-software.tar.gz
├── view/ # Slurm installation (unified prefix)
│ ├── bin/ # Slurm binaries (srun, sbatch, squeue, etc.)
│ ├── sbin/ # Daemons (slurmd, slurmctld, slurmdbd)
│ ├── lib/ # Shared libraries
│ │ ├── libslurm.so # Core Slurm library
│ │ ├── libslurmdb.so # Database library
│ │ └── slurm/ # Slurm plugins (auth, select, etc.)
│ ├── lib64/ # 64-bit libraries
│ ├── include/ # Header files
│ │ └── slurm/ # Slurm development headers
│ ├── share/ # Documentation, man pages
│ │ ├── man/ # Man pages (man1, man5, man8)
│ │ ├── doc/slurm/ # HTML documentation
│ │ └── licenses/ # License files
│ └── etc/ # Configuration templates
│ └── slurm/ # Sample configs
├── modules/ # Lmod modulefile
│ └── slurm/
│ └── {version}-{toolchain}.lua # Modulefile for this build
└── data/slurm_assets/ # Installation scripts and configs
├── slurm_install.sh # Automated installation script
├── defaults/ # Systemd unit files
│ ├── slurmd.service
│ ├── slurmctld.service
│ └── slurmdbd.service
├── slurm/ # Configuration templates
│ ├── slurm.conf.template
│ ├── slurmdbd.conf.template
│ ├── cgroup.conf.template
│ └── topology.conf.template
└── mysql/ # Database setup
└── slurm_acct_db.sql # Database schema
Buildcache Structure
Spack buildcache packages are organized by OS toolchain:
Dependencies Buildcache
s3://slurm-factory-spack-buildcache-4b670/{toolchain}/slurm/deps/buildcache/
├── build_cache/ # Compiled binary packages
│ ├── linux-ubuntu24.04-x86_64_v3/ # For noble toolchain
│ │ ├── gcc-13.3.0/
│ │ │ ├── openmpi-5.0.6-*.spack # MPI implementation
│ │ │ ├── pmix-5.0.5-*.spack # Process Management Interface
│ │ │ ├── munge-0.5.16-*.spack # Authentication service
│ │ │ ├── hwloc-2.11.2-*.spack # Hardware locality
│ │ │ └── libevent-2.1.12-*.spack # Event notification
├── _pgp/ # GPG public keys
│ └── *.pub
└── index.json # Package index
Slurm Buildcache
s3://slurm-factory-spack-buildcache-4b670/{toolchain}/slurm/{slurm_version}/buildcache/
├── build_cache/ # Compiled binary packages
│ ├── linux-ubuntu24.04-x86_64_v3/ # For noble toolchain
│ │ ├── gcc-13.3.0/ # Built with OS-provided GCC
│ │ │ ├── slurm-25.11.0-*.spack # Slurm package
│ │ │ ├── openmpi-5.0.6-*.spack # OpenMPI
│ │ │ ├── pmix-5.0.5-*.spack # PMIx
│ │ │ ├── munge-0.5.16-*.spack # Authentication
│ │ │ ├── openssl-3.4.0-*.spack # TLS/SSL
│ │ │ ├── hdf5-1.14.5-*.spack # Data format
│ │ │ ├── hwloc-2.11.2-*.spack # Hardware locality
│ │ │ ├── ucx-1.17.0-*.spack # Communications
│ │ │ └── ... (40+ more packages)
├── _pgp/ # GPG public keys for signature verification
│ └── *.pub # Public keys automatically imported by Spack
└── index.json # Package index
Package Benefits:
- ✅ GPG Signed - Cryptographically signed for security and integrity
- ✅ Compressed - zstd compression for smaller downloads
- ✅ Metadata - Full dependency information included
- ✅ Relocatable - RPATH configured for any prefix
Security Workflow:
- All packages built in isolated Docker containers
- Packages signed with GPG private key during CI/CD
- Public keys stored in
_pgp/directory of buildcache - Users import keys with
spack buildcache keys --install --trust - Spack verifies signatures automatically during installation
Distribution
Tarballs follow this naming pattern:
slurm-{slurm_version}-{toolchain}-{architecture}-software.tar.gz
Examples:
slurm-25.11-noble-amd64-software.tar.gz- Slurm 25.11 for Ubuntu 24.04 (Noble), AMD64slurm-24.11-jammy-arm64-software.tar.gz- Slurm 24.11 for Ubuntu 22.04 (Jammy), ARM64slurm-23.11-rockylinux9-amd64-software.tar.gz- Slurm 23.11 for Rocky Linux 9, AMD64
Distribution
S3 Distribution
Tarballs: Stored in the public buildcache bucket for direct download
s3://slurm-factory-spack-buildcache-4b670/{toolchain}/{slurm_version}/{architecture}/
└── slurm-{version}-{toolchain}-{architecture}-software.tar.gz
Buildcache: Stored in dedicated buildcache bucket organized by OS toolchain
s3://slurm-factory-spack-buildcache-4b670/
├── {toolchain}/slurm/deps/buildcache/
└── {toolchain}/slurm/{slurm_version}/buildcache/
Example for noble (Ubuntu 24.04):
s3://slurm-factory-spack-buildcache-4b670/
├── noble/slurm/deps/buildcache/
└── noble/slurm/25.11/buildcache/
CloudFront CDN
The S3 bucket is distributed via CloudFront for fast global access:
Buildcache and tarball CDN:
https://slurm-factory-spack-binary-cache.vantagecompute.ai
Available Builds
Architecture Compatibility Map
The build and publish workflows support both amd64 and arm64.
| Toolchain | amd64 | arm64 | Guidance |
|---|---|---|---|
| resolute | Supported | Supported | Recommended on both architectures |
| noble | Supported | Supported | Recommended on both architectures |
| jammy | Supported | Supported | Recommended on both architectures |
| rockylinux10 | Supported | Supported | arm64 is best-effort; validate first run |
| rockylinux9 | Supported | Supported | arm64 is best-effort; validate first run |
| rockylinux8 | Supported | Supported | arm64 is best-effort; validate first run |
Notes:
arm64builds run on self-hosted runners labeledARM64.amd64builds run on self-hosted runners labeledX64.- Actual build success can depend on upstream container image/package availability for each toolchain.
Tarballs
Current Slurm versions, OS toolchains, architectures, and public URLs are listed in Packages.
Tarball URLs use this pattern:
https://slurm-factory-spack-binary-cache.vantagecompute.ai/{toolchain}/{slurm_version}/{architecture}/slurm-{slurm_version}-{toolchain}-{architecture}-software.tar.gz
Each tarball has a detached signature at the same path with .asc appended.
Buildcache
All buildcache packages are available via CloudFront:
Dependencies Buildcache URLs:
https://slurm-factory-spack-binary-cache.vantagecompute.ai/{toolchain}/slurm/deps/
Slurm Buildcache URLs:
https://slurm-factory-spack-binary-cache.vantagecompute.ai/{toolchain}/slurm/{slurm_version}/
See Slurm Factory Spack Build Cache for complete buildcache documentation.
Downloading Artifacts
Using Tarballs
AWS CLI
# Download a specific build
aws s3 cp s3://slurm-factory-spack-buildcache-4b670/noble/26.05/amd64/slurm-26.05-noble-amd64-software.tar.gz .
# List all available builds
aws s3 ls s3://slurm-factory-spack-buildcache-4b670/ --recursive
# Download all builds for a specific Slurm version
aws s3 sync s3://slurm-factory-spack-buildcache-4b670/noble/26.05/ ./slurm-26.05-noble/
wget (Public Access)
# Download via HTTPS
wget https://slurm-factory-spack-binary-cache.vantagecompute.ai/noble/26.05/amd64/slurm-26.05-noble-amd64-software.tar.gz
curl
# Download with curl
curl -O https://slurm-factory-spack-binary-cache.vantagecompute.ai/noble/26.05/amd64/slurm-26.05-noble-amd64-software.tar.gz
Using Buildcache
With Spack
# 1. Install Spack
git clone --depth 1 --branch v1.0.0 https://github.com/spack/spack.git
source spack/share/spack/setup-env.sh
# 2. Add buildcache mirrors (organized by OS toolchain)
spack mirror add slurm-factory-slurm-deps \
https://slurm-factory-spack-binary-cache.vantagecompute.ai/noble/slurm/deps/
spack mirror add slurm-factory-slurm \
https://slurm-factory-spack-binary-cache.vantagecompute.ai/noble/slurm/26.05/
# 3. Import and trust GPG signing keys
spack buildcache keys --install --trust
# 4. Install from signed buildcache
spack install slurm@26.05
# 5. Load and use
spack load slurm@26.05
sinfo --version
With slurm-factory CLI
# The CLI can use the dependency buildcache when requested
pip install slurm-factory
# Build will use buildcache for dependencies when requested
slurm-factory build-slurm --slurm-version 26.05 --toolchain noble --buildcache=deps
Artifact Verification
Each tarball includes verification information:
# Extract and verify contents
tar -tzf slurm-26.05-noble-amd64-software.tar.gz | head -20
# Check modulefile
tar -xzf slurm-26.05-noble-amd64-software.tar.gz modules/slurm/26.05-noble.lua
cat modules/slurm/26.05-noble.lua
Installation from Artifacts
From Tarball
Complete installation example:
# 1. Download the tarball
wget https://slurm-factory-spack-binary-cache.vantagecompute.ai/noble/26.05/amd64/slurm-26.05-noble-amd64-software.tar.gz
# 2. Extract to target location
sudo mkdir -p /opt
sudo tar -xzf slurm-26.05-noble-amd64-software.tar.gz -C /opt/
# 3. Run installation script
cd /opt && sudo ./data/slurm_assets/slurm_install.sh --full-init --cluster-name mycluster
# 4. Configure Lmod to find modules
export MODULEPATH=/opt/modules:$MODULEPATH
# 5. Load the module
module load slurm/26.05-noble
# 6. Verify installation
sinfo --version
# Output: slurm 26.05.x
From Buildcache
Install Slurm directly with Spack:
# 1. Add buildcache mirrors
spack mirror add slurm-factory-deps \
https://slurm-factory-spack-binary-cache.vantagecompute.ai/noble/slurm/deps/
spack mirror add slurm-factory-slurm \
https://slurm-factory-spack-binary-cache.vantagecompute.ai/noble/slurm/25.11/
# 2. Import and trust GPG signing keys
spack buildcache keys --install --trust
# 3. Install from signed buildcache (5-15 minutes!)
spack install slurm@25.11
# 4. Load and verify
spack load slurm@25.11
sinfo --version
Package Sizes
Typical package sizes by type:
| Type | Size Range | Description |
|---|---|---|
| Default | 2-5 GB | Full build with OpenMPI, PMIx, HDF5 |
| GPU | 15-25 GB | Includes CUDA/ROCm support |
Build Metadata
Each build is tagged with metadata:
- Build Date: When the package was created
- Slurm Version: e.g., 25.11, 24.11
- Toolchain: e.g., noble, jammy, rockylinux9
- Architecture: x86_64_v3 (optimized for modern CPUs)
- Features: OpenMPI version, GPU support, etc.
Automation Integration
Ansible Playbook Example
- name: Deploy Slurm from S3
hosts: cluster
tasks:
- name: Download Slurm tarball
aws_s3:
bucket: vantagecompute-slurm-builds
object: slurm-factory/25.11/noble/amd64/slurm-25.11-noble-amd64-software.tar.gz
dest: /tmp/slurm.tar.gz
mode: get
- name: Extract Slurm
unarchive:
src: /tmp/slurm.tar.gz
dest: /opt/slurm
remote_src: yes
- name: Set up modules
copy:
src: /opt/slurm/modules/slurm/
dest: /opt/modulefiles/slurm/
remote_src: yes
Terraform Example
resource "null_resource" "deploy_slurm" {
provisioner "remote-exec" {
inline = [
"aws s3 cp s3://vantagecompute-slurm-builds/slurm-factory/25.11/noble/amd64/slurm-25.11-noble-amd64-software.tar.gz /tmp/",
"sudo mkdir -p /opt/slurm",
"sudo tar -xzf /tmp/slurm-25.11-noble-amd64-software.tar.gz -C /opt/slurm",
"sudo cp -r /opt/slurm/modules/slurm /opt/modulefiles/"
]
}
}
See Also
- Slurm Factory Spack Build Cache - Detailed buildcache documentation
- Infrastructure - AWS infrastructure and CDN
- GitHub Actions - Automated build and publishing
- Deployment Guide - Detailed deployment instructions
- Architecture - How packages are built
- Examples - Usage examples and patterns