sind

module
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 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
  • Designed for CI/CD — runs rootless on standard GitHub Actions runners; sind-action sets up clusters in a single step
  • 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

Parts of this codebase were developed with the assistance of AI tools. All contributions are reviewed by humans.

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.
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.
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.
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.
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