The IPFS Cluster project releases new versions regularly. This section describes the procedure to upgrade Clusters with minimal or no downtime.
It is very important to check the changelog before upgrading, in order to get familiar with changes since the last version. All information about potential incompatibilities and breaking changes are included there.
The other main consideration is that:
The RPC Protocol version can be seen in the response of
ipfs-cluster-ctl --enc=json id (
rpc_protocol_version field), or in the source code. It should remain stable across multiple IPFS Cluster releases and it only changes when non-backwards compatible RPC changes happen.
If there is a mismatch between the RPC protocol versions of the peers, they will not be able to communicate.
When the RPC protocol version is the same, the core functionality of peers will work even if the cluster is made of peers running different versions, unless the changelog states otherwise.
Running the upgrade
The general approach to is to:
ipfs-cluster-followto the new version.
- Restart all the peers (either sequentially or at once).
In the case of
raft, the restart only works if:
leave_on_shutdownis set to
false. Otherwise, those peer will need to be bootstrapped on the next start.
wait_for_leader_timeoutis sufficiently high to account for the restart of the majority peers in the cluster (default should be ok in most cases)