Member-only story
How to upgrade your Helm Charts

Upgrading Helm charts is not a straightforward process if you have more changes in values key-pair in thevalues.yml
file. Doing the comparison of values manually is very tedious as you have to go through each breaking change in Kubernetes which includes tag and structure changes. Recently I got a chance to work on the helm upgrade stuff since our Kubernetes cluster got upgraded and during this phase, I came across a CLI called helm-diff. So, in this article, I will take you through the steps that I took to upgrade the Helm charts to a newer version.
Pre-requisites
- Kubernetes Cluster
- Helm CLI
- helm diff extension
Steps
For the illustration, I am using the Nginx ingress chart as an example, which can be found here.
- First get the details of the existing helm chart that you want to upgrade — repository, chart version, and custom values that need to be retained.
# To get the list of versions availablehelm repo add ingress-nginx https://kubernetes.github.io/ingress-nginxhelm repo updatehelm search repo ingress-nginx -lingress-nginx/ingress-nginx 4.0.2 1.0.1 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 4.0.1 1.0.0 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 3.41.0 0.51.0 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 3.40.0 0.50.0 Ingress
........
controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 2.13.0 0.35.0 Ingress controller for Kubernetes using NGINX a...
ingress-nginx/ingress-nginx 2.12.1 0.34.1 Ingress controller for Kubernetes using NGINX a...
I am using a Chart with a version 3.41.0
with default values in the chart. The chart has been deployed in the namespace nginx
kubectl create ns nginx
helm install ingress-nginx ingress-nginx/ingress-nginx --namespace nginx --version 3.41.0
2. Now we plan to upgrade the chart to the next version with feature changes. Here in the Nginx chart…