Upgrading Kubeform

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

Upgrading Kubeform to v2021.08.02

In order to upgrade from Kubeform to v2021.08.02, please follow the following steps.

1. Update Kubeform Catalog CRDs

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

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

2. Upgrade Kubeform Operator

Now, upgrade the Kubeform 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 kubeform appscode/kubeform \
  --version v2021.08.02 \
  --namespace kubeform \
  --set-file global.license=/path/to/the/license.txt

Migration Between Community Edition and Enterprise Edition

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

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

From Enterprise Edition to Community Edition:

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

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

Using YAML (with helm 3)

From Community Edition to Enterprise Edition:

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

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

From Enterprise Edition to Community Edition:

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

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

Updating License

Kubeform support updating license without requiring any re-installation. Kubeform 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 kubeform -n kubeform appscode/kubeform \
  --reuse-values \
  --set-file global.license=/path/to/new/license.txt

Using YAML (with helm 3)

Update License of Community Edition:

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

Update License of Enterprise Edition:

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