Extensions that turn Podman into an HPC-ready runtime with Sarus-suite. Annotation-driven. Fully static binaries. Works on any Linux node.
- Accelerators on demand: Enable accelerated libraries, MPS, extra mounts, env tweaks — per container — via annotations.
- Cluster-friendly: Static builds = zero runtime deps. Drop the binaries onto heterogeneous systems.
- Least surprise: Control hook execution from the Sarus EDF via annotation conditions match. No image changes needed.
-
Precreate Container Edits (pce_hook) Reads container config from
stdin, applies env + mount edits fromPCE_INPUT, writes updated config tostdout. Use atcreateContainer. -
Refresh loader cache (ldcache_hook) On
prestart, runsldconfig -v -r <rootfs>(override withLDCONFIG_PATH). -
NVIDIA MPS bootstrap (mps_hook) Starts
nvidia-cuda-mps-control -d, checks per-UID server, returns helpful exit codes.
Fast:
cargo build --releasePortable (recommended): static musl builds via devcontainer
devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . cargo build --releaseNeeds "devcontainer cli"
Example: ldconfig at prestart
{
"version": "1.0.0",
"hook": {
"path": "/opt/hooks/ldcache_hook",
"env": ["LDCONFIG_PATH=/sbin/ldconfig"]
},
"when": { "annotations": { "ldcache.enable": "true" } },
"stages": ["prestart"]
}Example: PCE at precreate stage
{
"version": "1.0.0",
"hook": {
"path": "/opt/hooks/pce_hook",
"env": ["PCE_INPUT=/etc/hooks/pce-input.json"]
},
"when": {
"always": false,
"annotations": { "pce.enable": "^true$" }
}, "stages": ["precreate"]
}bats test