Warning
Before you upgrade, ensure that the operating system version that you use is supported. See System Requirements for detailed information on operating system support.
The following upgrade methods are supported:
Linux Archive
Interactive Script Upgrade (recommended)
The installer script works with all supported upgrade methods (RPM, Debian and Docker Compose). It provides you an interactive way to install Distribution and its dependencies.
Download Distribution (RPM, Debian or Docker Compose).
Stop the service.
Systemd OS Systemv OS Docker - Stop and remove old containers
Extract the contents of the compressed archive and go to the extracted folder. The installer script is located in the extracted folder.
Note: For Docker Compose upgrades, make sure to merge your customizations in your current
docker-compose.yaml
file to the new extracted version of thedocker-compose.yaml
file.Note
Copy the contents of the
.env
file in the previous installation to the newly created.env
file in this archive without copying the versions, as this will affect the upgrade.Run the installer script.
Note: if needed, the script will prompt you with a series of mandatory inputs, including the
jfrogURL
(custom base URL) andjoinKey
.Compose RPM/DEB
Start and manage the Distribution service.
systemd OS
distribution.service
systemv OS Docker Compose
Access Distribution from your browser at:
http://<jfrogUrl>/ui/
, go the Distribution tab in the Application module in the UI.Check Distribution Log.
Manual RPM/Debian Upgrade
Download Distribution (RPM or Debian)
Stop the current server.
systemd OS systemv OS
Extract the contents of the compressed archive and go to the extracted folder.
Install Distribution as a service on Red Hat compatible Linux distributions, as a root user.
rpm Debian
Start and manage Distribution.
systemd OS systemv OS
Access Distribution from your browser at: http://<jfrogUrl>/ui/, go the Distribution tab in the Application module in the UI.
Check Distribution Log.
Linux Archive Upgrade
Stop the current server.
Stop Distribution
Extract the contents of the compressed archive and go to the extracted folder.
Untar
Replace the existing $JFROG_HOME/distribution/app with the new app folder.
Upgrade
Note
Verify that the password specified in the
requirepass
field in$JFROG_HOME/distribution/var/etc/redis/redis.conf
(for more information, refer to https://redis.io/docs/manual/config/) and theredis.password
field in$JFROG_HOME/distribution/etc/system.yaml
are the same.Manage Distribution.
Run the following command as the distribution user.
Access Distribution from your browser at:http://<jfrogUrl>/ui/, go theDashboard tab in theApplicationmodule in the UI.
Check Distribution Log.
Helm Upgrade
Note
Due to breaking changes in the PostgreSQL Helm chart, you will need to migrate the database from the old to the new database.
Note
Downtime is required to perform an upgrade.
Note
To upgrade Distribution, you will first need to verify the following.
Verify that you have upgraded Artifactory to v.7x. For more information, see Helm Upgrade.
f you are using the default PostgreSQL (
postgresql.enabled=true
), you need to pass previous 9.x or 10.x'spostgresql.image.tag
anddatabaseUpgradeReady=true
; you will also need to delete the existing statefulset of the PostgreSQL subchart before the Helm upgrade because the 9.x chart version of PostgreSQL has breaking changes.Run
helm upgrade
with the following values set.
Update the existing deployed version to the updated version.
If Distribution was installed without providing a value to
postgresql.postgresqlPassword
(the password was autogenerated), follow these instructions.Get the current password by running the following.
Upgrade the release by passing the previously auto-generated secret.
If Distribution was installed without providing a value to
rabbitmq.rabbitmqPassword/rabbitmq-ha.rabbitmqPassword
(the password was autogenerated), follow these instructions.Get the current password by running the following.
Upgrade the release by passing the previously auto-generated secret.
If Distribution was installed with all of the default values (e.g., with no user-provided values for Rabbit/Postgres), follow these steps.
Retrieve all current passwords (RabbitMQ/PostgreSQL) as explained in the above section.
Upgrade the release by passing the previously auto-generated secrets.
Migration Process
The recommended migration process is a full database export and import of PostgreSQL.
Block user access to Distribution (but do not shut down).
Get the service name
OLD_PG_SERVICE_NAME
using the command below. For example:OLD_PG_SERVICE_NAME
as<OLD_RELEASE_NAME>-postgresql
.Save the previous password
OLD_PG_SERVICE_NAME
or extract it from the secret of the existing PostgreSQL pod.Install the new Distribution version with 0 replicas.
A new PostgreSQL pod will be deployed and started. The Distribution pod will be deployed but not started, since the replica count is 0.
For example.
Connect to the new PostgreSQL pod (you can obtain the name by running
kubectl get pods
).Once logged in, create a dump file from the previous database using
pg_dump
, and connect to the previous PostgreSQL chart.After running the command above, you should be prompted for a password; this password is the previous chart password (
OLD_PASSWORD
). This operation could take some time depending on the database size.Once you have the backup file, you can restore it with a command like the one below.
After running the command above, you will be prompted for a password; this is the current chart password. This operation could take some time depending on the database size.
Run the command
helm upgrade
to bring up Distribution.Run the following command to remove the old Distribution deployment and Helm release.
Access Distribution from your browser at:
http://<jfrogUrl>/ui/
, then go to the Security & Compliance tab in the Application module in the UI.Check the status of your deployed Helm releases.
Distribution should now be ready for use.