Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 16:16
· 423 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.1.0
325a4c2

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 mcp lets 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-run sends 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-run on 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/clusterctl

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

The manual covers every command.
Verify a download against checksums.txt.