Upgrade OpenEverest using Helm¶
OpenEverest consistently delivers updates that includes bug fixes, security enhancements, and various improvements designed to optimize the overall performance of your database.
Before you upgrade¶
Important
- Upgrade one minor release at a time to avoid unexpected issues. Start by updating to the latest patch release before moving on to the next minor release.
- For a safe upgrade, we perform a pre-upgrade hook that runs a series of checks. You can disable this by setting
upgrade.preflightChecks=false, but doing so means a safe upgrade cannot be assured.
Prepare for upgrading to version 1.7.0¶
Before you upgrade to OpenEverest version 1.7.0, run the following command:
kubectl label namespaces everest-system app.kubernetes.io/managed-by-
Migrate from the Percona Helm repository¶
If you originally installed OpenEverest using the percona Helm repository, you need to perform a one-time migration to switch your existing releases to the new openeverest repository. This does not reinstall OpenEverest — it simply re-associates your existing Helm releases with the new chart source while preserving all your current configuration.
To migrate, run the following commands:
-
Add the new OpenEverest Helm repository:
helm repo add openeverest https://openeverest.github.io/helm-charts/ -
Update your local Helm repository cache:
helm repo update -
Upgrade each release to use the chart from the new repository.
Upgrade the core components release:
helm upgrade everest-core openeverest/openeverest \ --namespace everest-system \ --reuse-valuesIf you have one or more database namespace releases, upgrade each one:
helm upgrade <RELEASE_NAME> openeverest/everest-db-namespace \ --namespace <DB_NAMESPACE> \ --reuse-valuesReplace
<RELEASE_NAME>and<DB_NAMESPACE>with your actual release name and namespace. To list all your current releases, runhelm list --all-namespaces. -
(Optional) Remove the old Percona Helm repository once all releases have been migrated:
helm repo remove percona
Upgrade CRDs¶
In Helm v3, CRDs are not updated automatically during a Helm upgrade. You need to upgrade the CRDs manually.
To update the CRDs, run the following command:
helm repo update
helm upgrade --install everest-crds \
openeverest/everest-crds \
--namespace everest-system \
--take-ownership
Upgrading with Helm versions prior to 3.17.0¶
If you upgrade from OpenEverest 1.8.0 and use a Helm version older than 3.17.0, the --take-ownership flag will not be available. Without this flag, you may encounter the following validation errors related to missing ownership metadata:
invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm";
annotation validation error: missing key "meta.helm.sh/release-name": must be set to "everest-crds";
annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "everest-system"
Workaround for Helm versions older than 3.17.0¶
If you must use a Helm version older than 3.17.0, you can manually simulate the behavior of --take-ownership by adding the required labels and annotations to the Everest CRDs:
CRDS=(databaseclusters.everest.percona.com databaseengines.everest.percona.com databaseclusterbackups.everest.percona.com databaseclusterrestores.everest.percona.com backupstorages.everest.percona.com monitoringconfigs.everest.percona.com)
kubectl label crds "${CRDS[@]}" app.kubernetes.io/managed-by=Helm --overwrite
kubectl annotate crds "${CRDS[@]}" meta.helm.sh/release-name=everest-crds
kubectl annotate crds "${CRDS[@]}" meta.helm.sh/release-namespace=everest-system
This ensures the CRDs are correctly recognized as managed by Helm, avoiding validation issues during the upgrade.
Upgrade Helm releases¶
Warning
When using helm upgrade, specifying --set (or other equivalent flags) causes Helm to revert all other values to the defaults defined in the chart. To avoid this issue, either include the --reuse-values flag or provide the complete set of values, including those used during the installation.
To upgrade OpenEverest using Helm, run the following commands:
-
Upgrade the Helm release for Everest (core components).
helm upgrade everest-core openeverest/openeverest --namespace everest-system --version "$VERSION"where,
VERSION is the OpenEverest version you wish to upgrade to.
-
Upgrade the Helm release for the database namespace (if applicable):
helm upgrade everest openeverest/everest-db-namespace --namespace <DB namespace> --version "$VERSION"where,
VERSION is the OpenEverest version you wish to upgrade to.
DB namespace is the namespace you wish to upgrade.