Latest stable version of OpenEBS is 3.6.0. Check the release notes here.
Upgrade to the latest cStor or Jiva version is supported only from 1.12.0 or later. The steps for upgrading can be found here.
- The community e2e pipelines verify upgrade testing only from non-deprecated releases (1.12 and higher) to 3.4.0. If you are running on release older than 1.12, OpenEBS recommends you upgrade to the latest version as soon as possible.
- OpenEBS has deprecated arch specific container images in favor of multi-arch container images. After 2.6, the arch specific images are not pushed to Docker or Quay repositories. For example, images like
cstor-pool-arm64:2.8.0should be replaced with corresponding multi-arch image
cstor-pool:2.8.0. For further queries or support, please reach out to OpenEBS Community for helping you with the upgrade.
- If you are upgrading Jiva volumes that are running in version 1.6 and 1.7, you must use these pre-upgrade steps to check if your jiva volumes are impacted by #2956. If they are, please reach out to OpenEBS Community for helping you with the upgrade.
Upgrade for Mayastor is supported from v2.0.x to v2.1.0 and above. Before we get into the upgrade documentation for Mayastor, it is important that we understand that there are two ways of deploying Mayastor (since v2.0.0) on to a kubernetes cluster -- the 'mayastor' helm chart and the 'openebs' helm chart. The upgrade instructions differ for these two deployment strategies. The first step of the upgrade is to identify the helm chart that you have used to deploy Mayastor. If you are using the Mayastor with the openebs helm chart, then the instructions for upgrading the mayastor helm chart do not apply to you.
You'll need the helm v3 binary to be on your $PATH. Execute the following command to check if you have helm v3:
Execute the following command to list the helm releases on the namespace where Mayastor is installed:
If the value of the 'CHART' column in the row which contains the helm chart for Mayastor, in the output of the above command, reads 'openebs-...', then your Mayastor deployment uses the openebs helm chart. If the CHART column instead reads 'mayastor-...', then it makes use of the mayastor helm chart. Click here if your Mayastor deployment uses the 'mayastor' helm chart.
Continue down this page if your Mayastor deployment uses the 'openebs' helm chart.
Supported upgrade paths for Mayastor, installed with the openebs chart, are... Source versions: 3.4.x or above Target versions: 3.7.y or above All source versions may upgrade to any of the target versions, so long as the release semver of the target version is greater than that of the source version.
To check for the latest released version of Mayastor available with the openebs helm chart, execute the following commands --
helm repo update,
helm search repo openebs --version ">a.b.c", where a.b.c is your source version, i.e. the version installed on your cluster. E.g.:
If you want to list all of the versions available for upgrade, execute the following commands:
Pick one from the listed version(s).
2. Building the
helm upgrade command#
The openebs helm chart embeds in to itself all of the OpenEBS storage engines. If you are using more than one of the openebs helm chart's storage engines (e.g. using localpv-provisioner alongside mayastor), then you'd have to include the upgrade options for those storage engines as well into the helm upgrade command.
Going forward, this turtorial assumes that your helm chart release-name is 'openebs-mayastor', that it is installed in the 'openebs' namespace of the kubernetes cluster, it has a source version of 3.6.0 and the target version for the upgrade is 3.7.0.
Execute this shell script/command to get the version of mayastor helm subchart that a particular openebs chart uses:
The image tag on a released mayastor chart is the value of the chart version, with a 'v' prefix. The above command displays the output after adding the 'v' prefix.
The helm upgrade command with the default options (and using variable from above) should look something like this:
Refer to the documentation at to see all of the available configuration options:
- https://github.com/openebs/mayastor-extensions/blob/<release-tag>/chart/values.yaml (e.g.: https://github.com/openebs/mayastor-extensions/blob/v2.2.0/chart/README.md, https://github.com/openebs/mayastor-extensions/blob/v2.2.0/chart/values.yaml) Prefix any option you'd want to set using the '--set' option, with 'mayastor', like shown in the default command above for the 'image.tag' option. This is due to the mayastor chart being a subchart of the openebs chart.
Because the mayastor chart is in active development, its helm chart values options may change over time and the convenience of the '--reuse-values' flags may also introduce nil yaml values for values which are required by helm's template engine. The 3.4.0, 3.4.1 and 3.5.0 releases face this issue. These releases require additional options to perform the default upgrade to 3.7.0 or above versions. Sample helm upgrade command from 3.4.0 to 3.7.0 or above versions:
Sample helm upgrade command from 3.4.1 to 3.7.0 or above versions:
Sample helm upgrade command from 3.5.0 to 3.7.0 or above versions:
The release versions 3.6.0 and above do not require special options to upgrade to 3.7.0 or above versions. The default upgrade command, should work here:
Visit the mayastor chart configuration for more configuration options. Add the options for the other storage engines (if any) to this command.
It is a good idea to throw in the
--atomic helm upgrade flag, so that the cluster may be reinstated to its source version, in case the upgrade to the target version fails. E.g.:
Execute the helm upgrade command. Proceed if and only if the command succeeds and all of the Mayastor Pods are ready. Check for Pod status using
kubectl get pods -n openebs
Follow the upgrade instruction for the mayastor helm chart -> https://mayastor.gitbook.io/introduction/additional-information/upgrade.
To upgrade to the latest version from your current version, you have to follow the below upgrade path.
- From 1.12.0 and higher to 3.6.0 - Get the steps from here.
- From 1.0.0 and higher to 1.12.0 - Get the steps from here.
- From 0.9.0 to 1.0.0 - Get the steps from here.
- From 0.8.2 to 0.9.0 - Get the steps from here.
- From 0.8.1 to 0.8.2 - Get the steps from here.
- From 0.8.0 to 0.8.1 - Get the steps from here.
- From versions prior to 0.8.0 - Get the steps from here.