Skip to content

Helm upgrade/install pattern

The Helm upgrade/install pattern is a command-line idiom used to manage Helm chart releases idempotently.^[400-devops-06-kubernetes-k8s-ingress-controller-docker-desktop-readme.md]

It combines the functionality of two distinct commands—helm upgrade and helm install—into a single invocation.^[400-devops-06-kubernetes-k8s-ingress-controller-docker-desktop-readme.md] This pattern simplifies scripting and automation by eliminating the need to check whether a release exists before executing the appropriate command.

Syntax

The pattern uses the --install flag with the upgrade subcommand^[400-devops-06-kubernetes-k8s-ingress-controller-docker-desktop-readme.md]:

[Helm](<./helm.md>) upgrade --install <release-name> <chart-path-or-repo>

Example

In the context of deploying an NGINX Ingress Controller to a Kubernetes cluster, the pattern is invoked as follows^[400-devops-06-kubernetes-k8s-ingress-controller-docker-desktop-readme.md]:

[Helm](<./helm.md>) upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace

This command ensures that the ingress-nginx release is installed if it is missing, or upgraded to the chart version specified in the repository if it already exists^[400-devops-06-kubernetes-k8s-ingress-controller-docker-desktop-readme.md].

Sources

^[400-devops-06-kubernetes-k8s-ingress-controller-docker-desktop-readme.md]