sind

module
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2026 License: GPL-3.0, LGPL-3.0

README

Create and manage containerized Slurm clusters for development, testing, and CI/CD workflows.

🚀 Getting Started    📖 Documentation


Inspired by kind (Kubernetes in Docker), sind offers a familiar CLI experience for quickly spinning up and tearing down Slurm clusters.

Features

  • Multi-node, multi-cluster & multi-realm — run controller, submitter, and worker nodes side by side, or spin up multiple clusters across isolated realms with shared networking
  • System containers — full systemd-based nodes that emulate bare metal, compatible with Ansible, Chef, and other config management tools; unmanaged clusters leave Slurm itself to them
  • Designed for CI/CD — runs rootless on standard GitHub Actions runners; sind-action sets up clusters in a single step
  • Multiple Slurm versions — official node images for the supported Slurm release lines (26.05 and 25.11) on linux/amd64 and linux/arm64, each with a full MPI stack, or bring your own image
  • Worker lifecycle — dynamically add and remove worker nodes from running clusters
  • Power cycle simulation — shutdown, reboot, freeze, and power-cycle nodes to simulate real-world failure scenarios
  • Minimal dependencies — just Docker and a sind container image; usable as both a CLI tool and a Go library
  • AI-ready via MCP — built-in MCP server lets AI assistants manage your Slurm clusters

AI disclosure

This project is developed with the help of AI coding tools. Since September 2026, changes written by Anthropic's Claude Code agent are committed as Claude <noreply@anthropic.com> and/or carry a Co-Authored-By: Claude … trailer; earlier AI-assisted commits are not individually marked.

License

sind is licensed under the GNU Lesser General Public License v3.0.

Copyright © GSI Helmholtzzentrum für Schwerionenforschung GmbH

Directories

Path Synopsis
cmd
sind command
Package main implements the sind CLI.
Package main implements the sind CLI.
internal
hostname
Package hostname decides whether a name may be used as one label of a host name.
Package hostname decides whether a name may be used as one label of a host name.
mock
Package mock provides test doubles for the cmdexec.Executor interface.
Package mock provides test doubles for the cmdexec.Executor interface.
termtext
Package termtext makes untrusted text safe to write to a terminal.
Package termtext makes untrusted text safe to write to a terminal.
testutil
Package testutil provides shared test helpers used across sind packages.
Package testutil provides shared test helpers used across sind packages.
pkg
cluster
Package cluster provides types and operations for sind cluster management.
Package cluster provides types and operations for sind cluster management.
cmdexec
Package cmdexec provides a testable abstraction for running external commands.
Package cmdexec provides a testable abstraction for running external commands.
config
Package config handles parsing and validation of sind cluster configuration.
Package config handles parsing and validation of sind cluster configuration.
docker
Package docker provides a thin abstraction over the Docker CLI.
Package docker provides a thin abstraction over the Docker CLI.
doctor
Package doctor provides host prerequisite checks for sind.
Package doctor provides host prerequisite checks for sind.
log
Package log provides context-based structured logging.
Package log provides context-based structured logging.
mesh
Package mesh manages the global infrastructure shared across all sind clusters.
Package mesh manages the global infrastructure shared across all sind clusters.
monitor
Package monitor provides event-driven monitoring of Docker containers and systemd services inside them.
Package monitor provides event-driven monitoring of Docker containers and systemd services inside them.
nodeset
Package nodeset provides nodeset pattern expansion for Slurm-style node specifications.
Package nodeset provides nodeset pattern expansion for Slurm-style node specifications.
probe
Package probe implements readiness probes for cluster services.
Package probe implements readiness probes for cluster services.
retry
Package retry runs operations with bounded exponential backoff.
Package retry runs operations with bounded exponential backoff.
slurm
Package slurm handles Slurm version discovery and configuration generation.
Package slurm handles Slurm version discovery and configuration generation.
ssh
Package ssh handles SSH key injection and host key collection for node containers.
Package ssh handles SSH key injection and host key collection for node containers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL