This is the manual for the unreleased main branch. The latest release is v0.4.0: read its manual.
Manual

Manual

clusterctl administers one or more HPC clusters from an administrator’s workstation. It replaces a toolkit of shell scripts with a single binary, one layered configuration and a command line that means the same thing everywhere.

Where to start

The shape of a command

Every command is a noun then a verb, and the global flags mean the same thing in all of them:

$ clusterctl [--context C] [-n NODESET] [-o FORMAT] [--dry-run] [-y] NOUN VERB
FlagMeaning
-n, --nodesThe node set to act on
-o, --outputtable, wide, json, yaml, nodeset, name, jq=…
--contextWhich cluster to act on
--dry-runSay what would happen and change nothing
-y, --yesAnswer the confirmations in advance
--forceAllow a protected host, or a node the inventory does not know, to be touched
--setOverride one configuration value for this command
--fanoutHow many hosts to work on at once; a lower value lowers the bounds of service processors and names too
--progressauto, tty, counter, plain or none: how progress is shown on standard error
--progress-logA file to append the command’s progress events to, as JSON lines

A note on safety

Anything that powers off, reinstalls, drains or overwrites shows you what it is about to do and asks. Above a configured host count it asks you to type the number of hosts, because a y is easy to type by reflex. Without a terminal to ask on, it refuses rather than proceeding — pass -y when you mean it.

--dry-run is the first thing to reach for on a command you have not run before. It prints what would be changed and changes nothing. Lookups still run for real, such as asking Slurm for a group or whether a node is running a job, so a dry run refuses what the real run would refuse.