Development Setup
- Go 1.25+
- Docker Engine 28.0+
- Linux host with cgroupv2 and
nsdelegatemount option
git clone https://github.com/GSI-HPC/sind.git
cd sind
make build
The binary is built at ./sind.
./sind --version
./sind create cluster
All common tasks are available via make:
| Target | Description |
|---|---|
make build |
Build the sind binary |
make test |
Run unit tests with race detector |
make test-integration |
Run integration tests (requires Docker) |
make coverage |
Generate HTML coverage report |
make lint |
Run golangci-lint |
make lint-docs |
Lint documentation markdown files |
make image |
Build the container image via docker buildx bake |
make clean |
Remove build artifacts and coverage files |
make help |
Show all available targets |
The build version defaults to dev and can be overridden:
make build VERSION=v1.0.0
sind uses a minimal set of dependencies:
| Dependency | Purpose |
|---|---|
github.com/spf13/cobra |
CLI framework |
sigs.k8s.io/yaml |
YAML configuration parsing |
github.com/charmbracelet/log |
Colorized log output (slog handler) |
github.com/mattn/go-isatty |
TTY detection for interactive commands |
github.com/njayp/ophis |
MCP server framework |
github.com/spf13/afero |
Filesystem abstraction for testability |
golang.org/x/sync |
Errgroup for concurrent operations |
github.com/stretchr/testify |
Test assertions (test only) |
Unit tests (no Docker required):
make test
Integration tests (requires Docker):
make test-integration
See Testing for details on the test infrastructure.