Skip to main content
important

Upgrade from OpenEBS 3.x to OpenEBS 4.0.1 is only supported for the below storages installed from OpenEBS 3.x.

  • Local PV Hostpath
  • Local PV LVM
  • Local PV ZFS
  • Replicated PV Mayastor

See the migration documentation for other storages.

Overview#

This upgrade flow allows the users to upgrade to the latest OpenEBS version 4.0.1 which is a unified installer for three Local Storages (a.k.a Local Engines):

  • Local PV HostPath
  • Local PV LVM
  • Local PV ZFS

and one Replicated Storage (a.k.a Replicated Engine):

  • Replicated PV Mayastor

As a part of upgrade to OpenEBS 4.0.1, the helm chart would install all four engines irrespective of the engine the user was using prior to the upgrade.

info

During the upgrade, advanced users who are only interested in Local PV Storage, can disable the Replicated PV Mayastor by setting the below option:

--set engines.replicated.mayastor.enabled=false

Update Helm Repository#

The OpenEBS helm chart repository is available from a different URL than before. The repository target URL needs to be updated.

helm repo remove openebs
helm repo add openebs https://openebs.github.io/openebs
helm repo update

Extract Helm Values#

Execute the following command to capture the helm values configuration of your helm release.

helm get values openebs -n openebs -o yaml > old-values.yaml
note

If you are using a custom helm chart to use OpenEBS, compare your set of helm values against the new helm values and the values of the dependency helm charts, here.

For users who have used helm v3.13 or above to install their chart, and not used helm's --set and/or -f options to configure their chart values, using the -a option with your helm get values command will let you capture your configuration values.

Feel free to reach out via our communication channels.

Local Storage#

This section describes the Local Storage upgrade from OpenEBS chart 3.x to OpenEBS 4.0.1. The upgrade process for Local PV Hostpath, Local PV LVM, and Local PV ZFS are largely identical, with a few changes in helm values depending on the Local PV Storage variant we are upgrading from.

  1. Execute the 4.0.1 upgrade command.
helm upgrade openebs openebs/openebs -n openebs -f old-values.yaml --version 4.0.1
note

If the upgrade is from Local PV LVM or Local PV ZFS storage solution, additional helm values must be specified with the above command to prevent upgrade process conflicts. The installed CRDs in 3.x would be in conflict with the CRDs in 4.0.1 as the chart structure has changed. Hence, they must be disabled.

  • For Upgrade from Local PV LVM, use
--set lvm-localpv.crds.lvmLocalPv.enabled=false
  • For Upgrade from Local PV ZFS, use
--set zfs-localpv.crds.zfsLocalPv.enabled=false

Add both of these options, if your chart has both of these enabled.

  1. Verify that the CRDs, Volumes, Snapshots and StoragePools are unaffected by the upgrade process.

Replicated Storage#

This section describes the Replicated Storage upgrade from OpenEBS Umbrella chart 3.x to OpenEBS 4.0.1.

  1. Start the helm upgrade process with the new chart, i.e. 4.0.1 by using the below command:
caution

Disable the partial rebuild during the upgrade from specific versions of OpenEBS (3.7.0, 3.8.0, 3.9.0 and 3.10.0) to OpenEBS 4.0.1 to ensure data consistency during upgrade. Input the value --set mayastor.agents.core.rebuild.partial.enabled=false in the helm upgrade command.

This applies to the kubectl mayastor upgrade command as well, if you're using the mayastor/mayastor chart and not the openebs/openebs chart: kubectl mayastor upgrade --set agents.core.rebuild.partial.enabled=false

helm upgrade openebs openebs/openebs -n openebs -f old-values.yaml --version 4.0.1 \
--set mayastor.agents.core.rebuild.partial.enabled=false \
--set openebs-crds.csi.volumeSnapshots.enabled=false
  1. Verify that the CRDs, Volumes, Snapshots and StoragePools are unaffected by the upgrade process.

  2. Start the Replicated Storage upgrade process by using the kubectl mayastor plugin v2.6.1.

kubectl mayastor upgrade -n openebs --set 'mayastor.agents.core.rebuild.partial.enabled=false'
  • This deploys an upgrade process of K8s resource type Job.
kubectl get jobs -n openebs
NAME COMPLETIONS DURATION AGE
openebs-upgrade-v2-6-1 1/1 4m49s 6m11s
  • Wait for the upgrade job to complete.
kubectl get pods -n openebs
openebs-upgrade-v2-6-1-s58xl 0/1 Completed 0 7m4s
  1. Once the upgrade process completes, all the volumes and pools should be online.

  2. If you have disabled the partial rebuild during the upgrade, re-enable it by adding the value --set mayastor.agents.core.rebuild.partial.enabled=true in the upgrade command.

helm upgrade openebs openebs/openebs -n openebs --reuse-values --version 4.0.1 \
--set mayastor.agents.core.rebuild.partial.enabled=true

See Also#

Was this page helpful? We appreciate your feedback