Concourse is upgraded by stopping the Concourse process, swapping out the
concourse binary with the new one, and re-starting it. This should be done on each
web node and
worker node. Be careful to check the release notes for anything marked 'breaking' - in particular, you'll want to look for any flags that have changed.
web node will automatically run migrations on start and locks via the database to ensure only one of them runs the migrations. We currently do not guarantee zero-downtime upgrades, as migrations may make changes that confuse the older
web nodes. This should resolve as each node is upgraded, and shouldn't result in any inconsistent state.
Typically, Concourse can be upgraded from any version to any other version, though around 3.x and 4.x we made some changes to how migrations are run, and as a result the following upgrade paths must be followed:
|Current Version||Upgrade Path|
|< v3.6.0||v3.6.0 -> v4.0.0 -> latest|
|= v3.6.0||v4.0.0 -> latest|
We'll try to minimize this kind of thing in the future.