Upgrading Voyager

This guide will show you how to upgrade various Voyager components. Here, we are going to show how to upgrade from an old Voyager version to the new version, how to migrate between the enterprise edition and community edition, and how to update the license, etc.

Upgrading Voyager from v2021.x.x to v2022.08.17

In order to upgrade from Voyager v2021.x.x to v2022.08.17, please follow the following steps.

Please note that since v2021.09.16, we recommend installing Voyager operator in the voyager namespace. The upgrade instructions on this page assumes so. If you have currently installed the operator in a different namespace like kube-system, either follow the instructions with appropriate updates, or first uninstall the existing operator and then reinstall in the voyager namespace.

1. Update Voyager Catalog CRDs

Helm does not upgrade the CRDs bundled in a Helm chart if the CRDs already exist. So, to upgrde the Voyager catalog CRD, please run the command below:

kubectl apply -f https://github.com/voyagermesh/installer/raw/v2022.08.17/crds/voyager-crds.yaml

2. Upgrade Voyager Operator

Now, upgrade the Voyager helm chart using the following command. You can find the latest installation guide here.

helm upgrade voyager-operator appscode/voyager \
  --version v2022.08.17 \
  --namespace voyager \
  --set cloudProvider=$provider \
  --set-file license=/path/to/the/license.txt

Migration Between Community Edition and Enterprise Edition

Voyager supports seamless migration between community edition and enterprise edition. You can run the following commands to migrate between them.

Using Helm 3

From Community Edition to Enterprise Edition:

In order to migrate from Voyager community edition to Voyager enterprise edition, please run the following command,

helm upgrade voyager-operator appscode/voyager \
  --namespace voyager \
  --reuse-values \
  --set-file license=/path/to/voyager-enterprise-license.txt

From Enterprise Edition to Community Edition:

In order to migrate from Voyager enterprise edition to Voyager community edition, please run the following command,

helm upgrade voyager-operator appscode/voyager \
  --namespace voyager \
  --reuse-values \
  --set-file license=/path/to/voyager-community-license.txt

Using YAML (with helm 3)

From Community Edition to Enterprise Edition:

In order to migrate from Voyager community edition to Voyager enterprise edition, please run the following command,

# Install Voyager enterprise edition
helm template voyager appscode/voyager \
  --namespace voyager --create-namespace \
  --version v2022.08.17 \
  --set cleaner.skip=true \
  --set-file license=/path/to/voyager-enterprise-license.txt | kubectl apply -f -

From Enterprise Edition to Community Edition:

In order to migrate from Voyager enterprise edition to Voyager community edition, please run the following command,

# Install Voyager community edition
helm template voyager appscode/voyager \
  --namespace voyager --create-namespace \
  --version v2022.08.17 \
  --set cleaner.skip=true \
  --set-file license=/path/to/voyager-community-license.txt | kubectl apply -f -

Updating License

Voyager support updating license without requiring any re-installation. Voyager creates a Secret named <helm release name>-license with the license file. You just need to update the Secret. The changes will propagate automatically to the operator and it will use the updated license going forward.

Follow the below instructions to update the license:

  • Get a new license and save it into a file.
  • Then, run the following upgrade command based on your installation.

Using Helm 3

# detect current version
helm ls -A | grep voyager

# update license key keeping the current version
helm upgrade voyager-operator appscode/voyager --version=<cur_version> \
  --namespace voyager \
  --reuse-values \
  --set-file license=/path/to/new/license.txt

Using YAML (with helm 3)

# detect current version
helm ls -A | grep voyager

# update license key keeping the current version
helm template voyager appscode/voyager --version=<cur_version> \
  --namespace voyager --create-namespace \
  --set cleaner.skip=true \
  --set-file license=/path/to/new/license.txt | kubectl apply -f -