Xray HA Upgrade

JFrog Installation & Setup Documentation

Content Type
Installation & Setup
ft:sourceType
Paligo

This section describes the process of upgrading your Xray High Availability cluster using the interactive script.

The upgrade supports the following installation types:

  • Linux Archive

  • Docker Compose

  • RPM/Debian

For more information on HA upgrade in Helm, see Xray Helm Upgrade.

Starting from version 3.31.0 and later, Xray supports hot upgrade for HA installations. Unlike regular upgrades, you need not turn off the secondary nodes while upgrading a node.

To perform a hot upgrade, ensure that all the nodes in the HA cluster run on the same version. For example, you cannot perform hot upgrade if one node is in version 3.31.0 and the two other nodes are in 3.31.1. While the upgrade is in process, you cannot do a DB sync. You must not restart any node while hot upgrade is in process. If you restart a node in the middle of the process, the node will not be able to rejoin the cluster. The JFrog Platform UI displays a warning message while the upgrade is in process. You cannot downgrade to a previous version using the hot upgrade process

Note

Since Xray supports hot upgrade from version 3.31.0, you can perform hot upgrade to upgrade the HA installation in 3.31.0 to a version higher than 3.31.0.

Upgrade from Versions Higher than 3.31.0

Follow these steps to upgrade Xray using the interactive script on each node in the cluster.

  1. Stop the Xray service on the node that you want to upgrade.

    Linux Archive

    $JFROG_HOME/xray/app/bin/xray.sh stop

    Docker Compose

    docker-compose -p xray down

    RPM/Debian

    systemctl stop xray
  2. ForLinux Archive only: Delete theappfolder.

  3. Upgrade Xray by running the installer script.

    If needed, the script prompts you with a series of mandatory inputs, including the jfrogURL (custom base URL) and joinKey.

    Linux Archive/Docker Compose

    ./config.sh

    RPM/Debian

    ./install.sh
  4. Start the Xray services.

    Linux Archive

    $JFROG_HOME/xray/app/bin/xray.sh start

    Docker Compose

    docker-compose -p xray up -d

    RPM/Debian

    systemctl start xray
Upgrade from Versions Prior to 3.31.0

Follow these steps to upgrade Xray using the interactive script.

Linux and Native Installers

Before running the upgrade on Linux and Native installers, you will need to stop RabbitMQ. Because shared.rabbitMq.autoStop is set to false by default. to be able to run RabbitMQ with systemctl/xray.sh, you will need to set shared.rabbitMq.autoStop to true.in the system.yaml .

Docker Compose

For Docker Compose, you will need to run the

docker-compose -p xray-rabbitmq -f docker-compose-rabbitmq.yaml down

  1. Stop the Xray services on all secondary nodes.

    Important

    You must stop the services on the secondary nodes before stopping the services on the master node.

    Linux Archive

    $JFROG_HOME/xray/app/bin/xray.sh stop

    Docker Compose

    docker-compose -p xray down

    RPM/Debian

    systemctl stop xray
  2. Next, stop the Xray services on the master node.

    Linux Archive

    $JFROG_HOME/xray/app/bin/xray.sh stop

    Docker Compose

    docker-compose -p xray down

    RPM/Debian

    systemctl stop xray
  3. For Linux Archive only: Delete the app folder on all nodes (master and secondary).

  4. Upgrade Xray on the master node by running the installer script.

    If needed, the script will prompt you with a series of mandatory inputs, including the jfrogURL (custom base URL) and joinKey.

    Linux Archive/Docker Compose

    ./config.sh

    RPM/Debian

    ./install.sh
  5. Start the Xray services on the master node.

    Linux Archive

    $JFROG_HOME/xray/app/bin/xray.sh start

    Docker Compose

    docker-compose -p xray up -d

    RPM/Debian

    systemctl start xray
  6. Upgrade Xray on the secondary nodes.

    Linux Archive/Docker Compose

    ./config.sh

    RPM/Debian

    config.sh/install.sh
  7. Start the Xray services on the secondary nodes.

    Linux Archive

    $JFROG_HOME/xray/app/bin/xray.sh start

    Docker Compose

    docker-compose -p xray up -d

    RPM/Debian

    systemctl start xray