cargoship prepare
Prepares the nodes, including restarting the node if new kernel modules are enabled
Synopsis
Brings every host the cluster configuration names up to the prerequisites the package declares, without installing the engine: environment variables and sysctl settings, container-selinux on hosts with SELinux enabled, the fapolicyd rules the distro supplies, and the kernel modules the package asks for. A host that gained a module is rebooted, because the module has to be loaded before an apply can use it.
Running this is optional. An apply runs the same preparation phases itself, and this command exists so that the disruptive half can be done on its own schedule – ahead of a maintenance window rather than inside it.
–hosts and –firewall each opt into rewriting a part of the host that cargoship otherwise leaves alone. The fapolicyd rules are not one of them: they are written wherever a host runs fapolicyd and the package carries rules for it.
This changes every host it is pointed at, so it needs –confirm. Pass –dry-run to report what it would change instead.
cargoship prepare [Distro Package] [flags]
Examples
# Prepare every node in the config for an install
$ cargoship prepare ./build/cargoship-distro-amd64.tar.zst --config ./cargoship-config.yaml --confirm
# Update /etc/hosts, the firewall, and fapolicyd on every node
$ cargoship prepare ./build/cargoship-distro-amd64.tar.zst --config ./cargoship-config.yaml --confirm -H -F -f
# Prepare at most five hosts at a time
$ cargoship prepare ./build/cargoship-distro-amd64.tar.zst --config ./cargoship-config.yaml --confirm --concurrency 5
# Prepare workers 25% at a time
$ cargoship prepare ./build/cargoship-distro-amd64.tar.zst --config ./cargoship-config.yaml --confirm --work-concurrency 25%
Options
-a, --architecture string Architecture for OCI images and Zarf packages
-c, --concurrency int Maximum number of hosts to configure in parallel, set to 0 for unlimited. (default 30)
--config string Config file used to bootstrap a cluster.
--confirm Proceed with the run. Without it, a command that would change a host reports what it needs and stops.
--dry-run Report what would be done without changing any host. Connects to every host and runs the preflight checks for real, then lists the phases it did not run. Does not need --confirm.
-F, --firewall Whether to update every host node's firewall configuration.
-h, --help help for prepare
-H, --hosts Whether to update every host node's /etc/hosts file.
-k, --key string Path to public key file for validating signed packages
--receipt-path string Write a structured JSON record of the run to PATH: what ran, against which package, against which fleet, and what changed. The file is written whether the run succeeds or fails, and is created readable only by its owner. PATH may carry the placeholders {command} and {timestamp}, which expand to the command that ran and when it started, so a PATH set once in '.distro.receipt_path' gives every run its own file. It names every host in the cluster configuration, so run 'cargoship redact-receipt' over it before attaching it to a ticket.
--timeout string Set the timeout for how long functions will last. (default "60m")
--tmpdir string Specify the temporary directory to use for intermediate files (default "/tmp")
--values stringArray Path to a YAML values file overriding the values the package ships with. May be given more than once, with a later file winning over an earlier one, and all of them winning over the values in the cluster config file.
--verify verifyMode Verify the Cargoship package signature. (default if-possible)
--zarf-cache string Specify the location of the Zarf cache directory (default "$HOME/.cache/cargoship")
Options inherited from parent commands
--log-file Always write a full-verbosity debug log to a file, regardless of --log-level.
-L, --log-format string Select a logging format. Defaults to 'console'. Valid options are: 'console', 'json', 'dev'. (default "console")
-l, --log-level string Log level when running cargoship. Valid options are: warn, info, debug, trace (default "info")
--no-color Disable terminal color codes in logging and stdout prints.
SEE ALSO
- cargoship - CLI for cargoship installs