Repository navigation
v0.1.0
clusterctl v0.1.0
The first release of clusterctl: one static binary in place of the 27 Bash scripts of the cluster toolkit. It reaches the hosts of a site, selects nodes with ClusterShell node set syntax, runs commands on them in parallel, drives their service processors, reinstalls them and administers Slurm, for as many clusters as the configuration describes.
What is in it
- Reach everything: one host key file kept in version control, a generated ssh configuration, and sshuttle profiles for the networks behind a gateway.
- Select and fan out: ClusterShell compatible node sets, groups from node attributes, tables or the workload manager, and bounded parallel execution that reports every node.
- Operate hardware: Redfish with a pinned certificate, FreeIPMI and ipmitool, rack power units and the InfiniBand fabric.
- Reinstall nodes: DHCP inspection, per-node PXE and GRUB boot paths, age or sops encrypted secrets streamed to the node, and the configuration management client.
- Administer Slurm: nodes and their drain reasons, the queue and the accounting database, accounts, users and fair share.
- Work with an agent:
clusterctl mcplets an AI agent read the cluster and plan changes, and nothing is sent until you confirm it. - Ask before changing anything: a command that changes something shows what it is about to do and asks first,
--dry-runsends nothing, and a protected host needs--force. - The node set engine as a library:
github.com/GSI-HPC/clusterctl/nodeset, for other Go programs.
Coming from the shell toolkit
There is no compatibility layer. doc/migration.md maps every command and setting to its counterpart, and examples/site/ in each archive is a complete configuration to start from.
Before you rely on it
- This is a 0.x release. The configuration schema is
clusterctl/v1alpha1, and a minor release may still change a command, a flag or a field; its notes will say so. - What needs real hardware or a real cluster (IPMI against a service processor, fabric diagnostics, a Slurm controller, a PXE boot) is tested up to the command handed to the transport, not against the hardware. Run it with
--dry-runon your site first.
Platforms and verification
Linux and macOS, on amd64 and arm64, statically linked. Every archive is listed in checksums.txt and carries a build provenance attestation:
$ gh attestation verify clusterctl_linux_amd64.tar.gz --repo GSI-HPC/clusterctlWith mise, mise use -g github:GSI-HPC/clusterctl installs it and checks both.
Download the binary for your platform below, or:
$ go install github.com/GSI-HPC/clusterctl/cmd/clusterctl@v0.1.0The manual covers every command.
Verify a download against checksums.txt.