Upgrading multi-node Docker deployments

Follow these steps to upgrade an Release active-active cluster setup:

Note: Make sure to read the documentation for upgrade and release notes for each version you want to upgrade to.

  1. Stop the current running instances of the Docker containers which have the old version that needs to be upgraded. You do not need to stop the load balancer, mq and database containers. See the following example:

    # Shutdown deployments
    docker-compose -f docker-compose-xlr-ha.yaml stop xl-release-master  
  2. Update the docker-compose-xlr-ha.yaml file as shown

    • Update the image with a new tag which represents the version you want to upgrade to for both master and worker. For example:

      xl-release-master:
      image: xebialabs/xl-release:9.5.2
    • Specify your database connection details to point to the old database; for example using environment variables such as XL_DB_URL
    • Include all volumes already being used with old Docker images. In case of the “conf” volume, make sure also to update any configurations required by the new version “check release notes”, before mounting it to new version of the container.
    • Update the environment variables to include FORCE_UPGRADE:

      environment:
       - FORCE_UPGRADE=true
  3. You can use the following run.sh script to bring up the setup, or do it manually. Update the passwords to represent passwords used in previous version.
#!/bin/bash

# Set passwords
export XLR_ADMIN_PASS=admin
export POSTGRES_PASS=admin

echo ">>> Deploy master nodes"
# deploy master nodes, load balancer, mq and database.
docker-compose -f docker-compose-xlr-ha.yaml up --scale xl-release-master=2 -d || exit

# Print out the status
docker-compose -f docker-compose-xlr-ha.yaml ps || exit

# # Cleanup
# docker-compose -f docker-compose-xlr-ha.yaml down
  1. You can view the logs of individual containers using the docker logs <container_name> -f command.
  2. You can access the Release UI at http://localhost:8081