Upgrade Guide 8.2.0 to 8.3.0

The 8.3.0 release is intended to migrate docker-compose users to podman quadlet. Version 8.2.0 is the last version to support docker-compose and users are urged to migrate! Version 8.2.0 has full feature parity with version 8.3.0 and all services are identical. Therefore, no action is required for users that don't use docker-compose.

If you are upgrading from version 8.1.x you must upgrade to version 8.2.0 first!

Important Note

Backup Your Data Before Proceeding!

Moreover, this guide assumes that the steps below are executed in one session. If the session is interrupted (e.g. due to a logout) then the passwords need to be re-exported in given order. Only then, the upgrade procedure can be continued at an intermediate step without receiving errors.

Newly Required Tools

To run 21 Travel Rule the following tools needs to be installed:

  • Podman (version 5.6.0 or higher)
  • helm (version 3.8.0 or higher)
  • yq (The Golang version is preferred over the Python one)

Acceptance Testing

Before upgrading your production instance we encourage you to exercise the upgrade scenario on your acceptance testing instance.

Shutting down 21Travel services

Enter the following to shut down 21Travel services.

The passwords assigned to the environment variables below have been chosen during initial deployment. The export statements can be omitted in case an .env file is used.

cd 21-travel-deployment
export POSTGRES_PASSWORD=secret_password_1
export AUTOD_DB_PW=secret_password_2
export AOPD_DB_PW=secret_password_3
export TRPD_DB_PW=secret_password_4
export TRUSTD_DB_PW=secret_password_5
export KEYCLOAK_DB_PW=secret_password_6
export KEYCLOAK_ADMIN=your_keycloak_admin_username
export KEYCLOAK_ADMIN_PASSWORD=secret_password_7
docker compose down

Authenticating New Tools

Log in the new tools to the container registry using the username / password that you have obtained from us by executing the following two commands:

podman login registry.21analytics.ch -u YourUsername
helm registry login registry.21analytics.ch -u YourUsername

Extracting Domains from the Caddyfile

Run the following command to print the domains currently in use for 21 Travel Rule. You will need them in a later step.

sed -n 's/^\([a-z].*\) {/\1/p' Caddyfile

Obtaining the 8.3.0 Deployment Environment

You can switch to the 8.3.0 deployment environment discarding your custom changes (e.g. domain names in Caddyfile) because they don't apply anymore. Just enter the following:

git fetch origin
git reset --hard 8.3.0

Configuring the Extracted Domains

Save the domains extracted from the Caddyfile in values.yaml.

Running the Migration Script

The script will migrate your data from docker-compose to podman quadlet.

./docker-compose2podman-quadlet.sh

Optionally Committing Secrets

Backup your secrets! Use a secrets management tool or commit them.

git add secrets.yaml
git commit -m "secrets.yaml: persist secrets"

Starting 21 Travel Rule

systemctl start travel.service

Useful Systemd Commands

Stopping Services

systemctl stop travel.service

Restarting Services

systemctl restart travel.service

Checking the Status

systemctl status travel.service

Reading the Logs

journalctl -xeu travel.service