This is a tutorial for upgrading the Mender Server from version 3.6 to 3.7 in production environments. There are no particular steps you should take, other than take a backup and run the new version, however there are things to look out for.
Besides the version specific guidelines below, please make sure you're following the suggested upgrade best practices to reduce the risk of unpredictable downtime and data loss.
Be sure that your current version is 3.6 and that it works, and Mender Server starts properly.
If you haven't already done so, upgrade your MongoDB deployment from 5.0 to 6.0. Please refer to the official documentation for guidance on conducting the upgrade.
The helm chart is versioned separately from the Mender releases.
Until the helm chart version 5.5.x, the chart is compatible with both Mender 3.6 and 3.7. You should be aware of a few deprecation, though:
global.redis.username
and global.redis.password
are deprecated in Mender 3.7.0.
Use redis connection string format in the global.redis.URL
:
(redis|rediss|unix)://[<user>:<password>@](<host>|<socket path>)[:<port>[/<db_number>]][?option=value]
(redis|rediss|unix)[+srv]://[<user>:<password>@]<host1>[,<host2>[,...]][:<port>][?option=value]
device_auth.env.DEVICEAUTH_REDIS_DB
: use the new redis connection string format instead.device_auth.env.DEVICEAUTH_REDIS_TIMEOUT_SEC
: use the new redis connection string format instead.device_auth.env.USERADM_REDIS_DB
: use the new redis connection string format instead.device_auth.env.USERADM_REDIS_TIMEOUT_SEC
: use the new redis connection string format instead.api_gateway.minio
is deprecated in favor of api_gateway.storage_proxy
.
This entry could be used, but it is no longer maintained, and could be removed
in future releases.
How to upgrade:
api_gateway.minio.enabled=false
api_gateway.storage_proxy.enabled=true
api_gateway.storage_proxy.url
to the external storage url that you want to map externally.
For example https://fleetstorage.example.com
.
If you leave it empty, it uses the Amazon S3 external URL.Be prepared for the maintenance window of approximately 15 minutes. This is the maximal estimated migration time, as seen in the biggest databases we are dealing with.
The workflows-worker
and the create-artifact-worker
are crashing with this error log:
failed to apply Jetstream consumer migrations: context deadline exceeded
global.nats.URL
or global.nats.existingSecret
create_artifac_worker.automigrate
and workflows.automigrate
are set to false
© 2025 Northern.tech AS