Skip to content

ci: add standalone Slurm test cluster#8

Draft
kjvbrt wants to merge 4 commits into
DIRACGrid:mainfrom
kjvbrt:slurm-test-container
Draft

ci: add standalone Slurm test cluster#8
kjvbrt wants to merge 4 commits into
DIRACGrid:mainfrom
kjvbrt:slurm-test-container

Conversation

@kjvbrt

@kjvbrt kjvbrt commented Jul 2, 2026

Copy link
Copy Markdown

Summary

  • Adds standalone-slurm/ — a containerised single-node Slurm 25.11.2 cluster on Ubuntu 26.04 for testing job submission locally and in GitHub CI
  • Controller (intercede-slurmctld) and compute node (intercede-c1) run as separate Podman containers on a shared network
  • Includes three test jobs: simple, array, and Collatz sequence
  • Adds .github/workflows/slurm-integration.yml triggered on changes to standalone-slurm/ or src/
  • Pins the slurm image in compose.yml by digest and lets Renovate track it, instead of silently rebuilding from source on every CI run

Digest pin bootstrap

The image isn't published to GHCR yet, so compose.yml currently pins a placeholder digest. Rollout:

  1. This PR merges with the placeholder digest in place — CI will fail on podman-compose pull until real content exists at that tag (expected; there's nothing to test yet).
  2. build-local-slurm-image.yml runs and publishes the real image to :latest.
  3. Renovate's next scan sees the placeholder no longer matches :latest's actual digest and opens a PR rewriting the pin to the real digest.
  4. Merging that PR unlocks the integration workflow — and every future image change follows the same reviewable, bisectable PR path.

kjvbrt added 2 commits July 2, 2026 14:45
Single-node Slurm 25.11.2 cluster running in two Podman containers
(controller + compute node) on Ubuntu 26.04, for testing job submission
locally and in GitHub CI without real HPC infrastructure.
- Rename slurm-test/ to standalone-slurm/
- Add .github/workflows/slurm-integration.yml triggered on changes to
  standalone-slurm/ or src/, replacing the misplaced workflow that was
  inside the directory and never picked up by GitHub Actions
kjvbrt added 2 commits July 7, 2026 10:12
Moves standalone-slurm/ into tests/integration/stacks/local-slurm (+ shared
_images/slurm), matching IC-ADR-002's stack conventions: healthchecks gate
container startup instead of hand-rolled sleeps, the Slurm package version is
pinned and Renovate-tracked, the munge key is generated fresh per run instead
of baked into the image, and the image is prebuilt to GHCR by a separate
workflow.
podman-compose up was silently rebuilding the slurm image from source
on every CI run instead of using the GHCR-published one, since the
build: fallback wins whenever the tagged image isn't already present
locally. Pin compose.yml to a literal digest reference so Renovate's
docker-compose manager can manage it directly, and pull it explicitly
in CI so a missing digest fails loudly instead of falling back to a
rebuild.

The pinned digest is currently a placeholder since the image hasn't
been published to GHCR yet; Renovate will open a PR with the real
digest once build-local-slurm-image.yml pushes it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Implement SSH-slurm / local-slurm integration-test in CI workflow

1 participant