Upgrading KubeVault

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

Upgrading KubeVault to v2021.10.11

In order to upgrade from KubeVault to v2021.10.11, please follow the following steps.

1. Update KubeVault Catalog CRDs

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

kubectl apply -f https://github.com/kubevault/installer/blob/v2021.10.11/crds/kubevault-catalog-crds.yaml

2. Upgrade KubeVault Operator

Now, upgrade the KubeVault helm chart using the following command. You can find the latest installation guide here. We recommend that you do not follow the legacy installation guide, as the new process is much more simpler.

$ helm upgrade kubevault appscode/kubevault \
  --version v2021.10.11 \
  --namespace kubevault \
  --set-file global.license=/path/to/the/license.txt

Migration Between Community Edition and Enterprise Edition

KubeVault 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 KubeVault community edition to KubeVault enterprise edition, please run the following command,

helm upgrade kubevault -n kubevault appscode/kubevault \
  --reuse-values \
  --set kubevault-catalog.skipDeprecated=false \
  --set-file global.license=/path/to/kubevault-enterprise-license.txt

From Enterprise Edition to Community Edition:

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

helm upgrade kubevault -n kubevault appscode/kubevault \
  --reuse-values \
  --set kubevault-catalog.skipDeprecated=false \
  --set-file global.license=/path/to/kubevault-community-license.txt

Using YAML (with helm 3)

From Community Edition to Enterprise Edition:

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

# Install KubeVault enterprise edition
helm template kubevault -n kubevault appscode/kubevault \
  --version v2021.10.11 \
  --set kubevault-catalog.skipDeprecated=false \
  --set global.skipCleaner=true \
  --set-file global.license=/path/to/kubevault-enterprise-license.txt | kubectl apply -f -

From Enterprise Edition to Community Edition:

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

# Install KubeVault community edition
helm template kubevault -n kubevault appscode/kubevault \
  --version v2021.10.11 \
  --set kubevault-catalog.skipDeprecated=false \
  --set global.skipCleaner=true \
  --set-file global.license=/path/to/kubevault-community-license.txt | kubectl apply -f -

Updating License

KubeVault support updating license without requiring any re-installation. KubeVault 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

helm upgrade kubevault -n kubevault appscode/kubevault \
  --reuse-values \
  --set-file global.license=/path/to/new/license.txt

Using YAML (with helm 3)

Update License of Community Edition:

helm template kubevault -n kubevault appscode/kubevault \
  --set global.skipCleaner=true \
  --show-only appscode/kubevault-operator/templates/license.yaml \
  --set-file global.license=/path/to/new/license.txt | kubectl apply -f -

Update License of Enterprise Edition:

helm template kubevault appscode/kubevault -n kubevault \
  --set global.skipCleaner=true \
  --show-only appscode/kubevault-operator/templates/license.yaml \
  --set-file global.license=/path/to/new/license.txt | kubectl apply -f -