Upgrades
How to upgrade Arctic to a new version
This guide covers the process of upgrading Arctic agents and the CLI to a new version.
Pre-upgrade checklist
Before upgrading, verify:
- All peers are healthy. There is no cluster-wide health command; check each peer individually (see below).
- No active configuration changes are in progress.
- Each peer has a recent database snapshot. The agent takes one automatically
(daily by default) into
/opt/tillered/backup/; check the newest file's timestamp there, or capture one from immediately before the upgrade witharctic database snapshot(see backup and restore). - You have reviewed the release notes for breaking changes and upgrade-order constraints. Some releases cannot be rolled one node at a time; v1.4.2 is one (see Upgrading to v1.4.2).
To check peer health, list the peers and run a readiness check against each one:
arctic peers list
# Against a specific peer/context
arctic health --readyzUpgrading the Arctic Agent
The downloaded agent binary (distinct from the arctic CLI) ships an upgrade
subcommand that handles the service swap. Upgrade each node running the agent:
-
Shell into the node.
-
Download the agent binary for the host architecture:
curl -L https://release.tillered.com/arctic/latest/agent_amd64 -o ./agent
chmod +x ./agentFor arm64 hosts, use agent_arm64.
- Run the upgrade:
./agent upgradeThis stops the running agent, replaces the binary, then enables and starts the
arctic service.
Rolling upgrade across a cluster
Release notes can override the rolling pattern
Rolling one peer at a time is the general pattern, not a guarantee. A release can change something cluster-wide and require every node to move together; the release notes say so when it does. v1.4.2 is such a release: peer TLS is cluster-wide and a dialing peer expects a TLS peer, so there is no rolling upgrade path. See Upgrading to v1.4.2.
Unless the release notes say otherwise, upgrade one peer at a time to maintain cluster availability:
- Start with non-critical peers first.
- On each peer, download the agent binary and run
./agent upgrade. - After each peer upgrade, verify cluster health before proceeding:
arctic peers list
arctic health --readyz- Upgrade the remaining peers one at a time.
Upgrading the Arctic CLI
Download the new CLI binary:
curl -L https://release.tillered.com/arctic/latest/arctic_linux_amd64 -o arctic
chmod +x ./arcticFor other platforms use the matching artifact, e.g. arctic_linux_arm64 or
arctic_darwin_arm64.
You can either use it directly from the current directory or install it to a location on your PATH:
sudo mv ./arctic /usr/local/bin/arcticThere is no service to stop or start. The CLI reads
~/.config/arctic/config.yaml for authentication automatically.
Upgrading to v1.4.2
v1.4.2 turns on peer TLS cluster-wide, so upgrade every node in the cluster
together rather than rolling. An upgraded agent dials its peers expecting TLS
and pins their identity keys, so a mixed cluster cannot form a mesh. Plan one
window, run ./agent upgrade on every node, then verify.
Other v1.4.2 specifics:
- Database migrations run themselves. Migrations
000014(device selection) and000015(MPTCP) run automatically on the agent's first start. No operator action is needed. - The CLI state file moved to schema v2.
.arctic/cluster.statemigrates automatically the first time the new CLI loads it. A downgraded CLI reading a v2 state file exits with code 3 and a message naming both versions; if you must stay on the older CLI, remove the.arctic/directory and let it re-bootstrap. - Existing systemd units are preserved. The upgrade keeps your current
(possibly customized)
arctic.service. To adopt the new default hardened unit on an existing host, runsudo agent install --force; see Hardening. - Password hashes migrate on use. Existing credential hashes are re-derived to PBKDF2 transparently on the next successful authentication. No action is needed.
- The CLI discovers TLS on its own. After upgrading a cluster that ran
plaintext, the first
compose applyorcompose diffprobes the agents, discovers TLS, and pins their identities automatically; no--insecurerun or config edits are needed for scheme-less endpoints. See TLS and trust.
Post-upgrade verification
Use the CLI to verify the state of your agents after upgrading:
- Verify peers are reachable and at the expected version:
arctic peers list- Verify services are operational:
arctic services list- Confirm the license is still valid:
arctic license status-
Test traffic flow through representative services.
-
Check agent logs for any warnings:
journalctl -u arctic --since "10 minutes ago"Agents in a cluster can run different versions, but using newer features against older agents may cause failures or unexpected behaviour. Upgrade all agents before relying on new functionality.