Upgrading Pure Service Orchestrator using Helm

Upgrading Pure Service Orchestrator using Helm

A new version of the Pure Service Orchestrator is out and obviously you can’t wait to start using all those new goodies! But how do you go about updating your environment? This is actually quite simple, since all the heavy lifting is done by Helm, the package manager that is used to install, upgrade and maintain the Pure Service Orchestrator (PSO).

You can watch me do the upgrade in the video below, or just keep on reading below.

Show current version

So just a small step back, how would you know that a new version of the PSO is available? Well your best first step would be to visit the Github page for the plugin:

https://github.com/purestorage/helm-charts/tree/master/pure-k8s-plugin

To check the version you are currently using, use the following command, where the “-n my-namespace” is optional and only used if you installed PSO in a specific namespace:

kubectl describe deploy/pure-provisioner -n my-namespace

This command will return information about the PSO installation and the following line will show the version of the current image used for the FlexDriver pods.

Image:  purestorage/k8s:2.2.1

One thing to note here is that the version of the Helm chart and the image used can differ. For example the 2.3.1 helm chart will install the image version 2.3.0.

Upgrade the Pure Service Orchestrator

To execute the upgrade you will need to provide the values.yaml file which you also used during the installation of PSO. All the other stuff will be taken care of by Helm. Just make sure the values.yaml file does not contain a specific image version, as shown below. Otherwise it will not upgrade to any other version.

image:
name: purestorage/k8s
tag: 2.2.1
pullPolicy: IfNotPresent

We can now go ahead with the installation, the first step is to update our Helm repository information, so that our local Helm package manager is aware of any updates in it’s repos.

helm repo update

Once this command has completed, use the following command to show the versions available.

helm search pure-k8s-plugin -l

It will show all the versions available in the repo, with the latest one on top. In the example below we will use chart version 2.3.1. Please note that the Chart version and the app version can actually differ.

To install the new version, the following command can be used.

helm upgrade pure-storage-driver pure/pure-k8s-plugin –namespace my-namespace -f values.yaml –version 2.3.1

The –namespace parameter is optional, and needs only be used if you have installed PSO in a specific namespace. The -f values.yaml should be replaced with the path and name to your version of the values.yaml file. And after the –version parameter, you specify the helm chart version to upgrade to.

Once you hit enter, the upgrade should complete automatically. You can use the following commmand to monitor the upgrade process.

kubectl get all -l chart=pure-k8s-plugin -n my-namespace

This will show all the provisioning details of the PSO, if you repeat this command, you will see that one by one the old pure-flex pods are terminated, while new versions of these pods are started. You will also see a new pure-provisioner pod being started. Once this is online the old pure-provisioner pod will be terminated.

Once all pods are updated, you can see that the age of the pods is several minutes, at which stage the upgrade is completed. To check the actual version of the PSO, execute the following command again.

kubectl describe deploy/pure-provisioner -n my-namespace

This command will return information about the PSO installation and the following line will show the version of the current image used for the FlexDriver pods.

Image:  purestorage/k8s:2.3.1

Leave a Reply

Your email address will not be published.