ServiceControl version 6 updates the underlying data storage from RavenDB 5.4 to RavenDB 6.2. Once upgraded, the database cannot be downgraded.
Users hosting ServiceControl in containerized infrastructure must also make changes to ensure data is accessible in the new version.
Prerequisites
Before upgrading to ServiceControl version 6, ensure all ServiceControl instances have first been upgraded to version 5.11.0.
Container changes
When using the servicecontrol-ravendb
container image, the following changes must be made when upgrading to ServiceControl version 6:
Data volume mount location
The internal structure of the container image that the servicecontrol-ravendb
container image is based on has changed, so the required data volume must be mounted to the new location inside the container.
- Old path:
/
opt/ RavenDB/ Server/ RavenData - New path
/
var/ lib/ ravendb/ data
If the volume mount mapping is not updated, the container will refuse to start.
Data volume permissions
The previous container ran as root
, but the new container now runs as a non-root ravendb
user with user ID 999.
Because of this change, the files created in the data volume by the previous version of the container need to have their owner changed to user ID and group ID 999.
The exact way to do this depends on the type of mount used (volume vs. bind mount) and container hosting environment.
For example, one way this could be achieved:
docker stop <insert sc ravendb container name here>
docker remove <insert sc ravendb container name here>
docker run --rm \
-v <ravendb volume name or bind mount path>:/opt/RavenDB/Server/RavenData \
--entrypoint /bin/bash \
particular/servicecontrol-ravendb:5.11.0 \
-c "chown -R 999:999 /opt/RavenDB/Server/RavenData"
If the permissions have not been updated, the container will refuse to start.
Support for version 5
Version 5 is supported for one year after version 6 is released as defined by the ServiceControl support policy. The ServiceControl support end date is available at ServiceControl supported versions.