sind

module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 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 clusters — controller, submitter, and worker nodes as individual containers with systemd init
  • Realistic environment — munge authentication, SSH access, DNS resolution
  • Cross-cluster networking — shared mesh network with DNS for multi-cluster setups
  • Worker lifecycle — dynamically add and remove worker nodes from running clusters
  • Power simulation — shutdown, reboot, freeze, and cycle nodes to test Slurm failure handling
  • Minimal dependencies — just Docker and a sind container image; usable as both a CLI tool and a Go library

Quick start

# Install sind
go install github.com/GSI-HPC/sind/cmd/sind@latest

# Write a minimal cluster config
cat > cluster.yaml <<'EOF'
kind: Cluster
name: dev
nodes:
  - controller
  - worker: 2
EOF

# Create a cluster
sind create cluster --config cluster.yaml

# Check status
sind status

# Delete cluster
sind delete cluster dev

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
pkg
cluster
Package cluster provides types and operations for sind cluster management.
Package cluster provides types and operations for sind cluster management.
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.
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.
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