Installing Helm

Install Helm on macOS, Linux, and Windows. Verify your setup and connect Helm to your Kubernetes cluster.

5 min read

Installing Helm

In the previous tutorial, we learned what Helm is and why it's the go-to tool for managing Kubernetes applications. Now let's get it installed on your machine.

Good news — installing Helm is ridiculously easy. Like, easier-than-most-dev-tools easy.

Prerequisites

Before we start, make sure you have:

  • kubectl installed and configured
  • A running Kubernetes cluster (Minikube, kind, Docker Desktop, or a cloud cluster)
  • kubeconfig set up (if kubectl get nodes works, you're good)

"Do I need to install anything in my cluster?"

Nope! Helm 3 is purely client-side. It uses your existing kubeconfig to talk to the Kubernetes API. No server component, no Tiller, no cluster setup. Just install and go.

Installing on macOS

Using Homebrew (Recommended)

brew install helm

That's it. Seriously. Homebrew handles everything.

Using the Install Script

If you don't use Homebrew:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Installing on Linux

Using the Install Script (Recommended)

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Using apt (Debian/Ubuntu)

curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

Using dnf (Fedora)

sudo dnf install helm

Using snap

sudo snap install helm --classic

Installing on Windows

Using Chocolatey

choco install kubernetes-helm

Using Scoop

scoop install helm

Using Winget

winget install Helm.Helm

Verifying the Installation

Run this to confirm Helm is installed correctly:

helm version

You should see something like:

version.BuildInfo{Version:"v3.14.0", GitCommit:"...", GitTreeState:"clean", GoVersion:"go1.21.6"}

"I got 'command not found'. What now?"

Make sure the Helm binary is in your PATH. If you used the install script, it typically installs to /usr/local/bin/. Try opening a new terminal window — sometimes the PATH isn't updated in existing sessions.

Connecting Helm to Your Cluster

Here's the beautiful part — there's nothing to connect. Helm automatically uses whatever cluster kubectl is pointing to.

Verify your cluster connection:

kubectl cluster-info

If that works, Helm works too. Let's prove it:

helm list

You should see an empty table (no releases yet). That means Helm can talk to your cluster. Boom!

"What if I have multiple clusters configured?"

Helm respects your current kubectl context. Switch contexts like you normally would:

# See available contexts
kubectl config get-contexts

# Switch to a different cluster
kubectl config use-context my-other-cluster

# Now Helm commands will target that cluster
helm list

You can also pass --kube-context to any Helm command:

helm list --kube-context production-cluster

Adding Your First Repository

Helm charts live in repositories. Let's add the most popular one — Bitnami:

helm repo add bitnami https://charts.bitnami.com/bitnami

Now update the repo index to get the latest charts:

helm repo update

Let's search for something:

helm search repo bitnami/nginx
NAME           CHART VERSION  APP VERSION  DESCRIPTION
bitnami/nginx  15.4.0         1.25.3       NGINX Open Source for web serving...

"Can I browse charts without the CLI?"

Absolutely! Check out Artifact Hub — it's like the app store for Helm charts. Search, browse, and read docs right in your browser.

Quick Sanity Check

Let's install something real quick to make sure everything works end-to-end. Don't worry about understanding every detail yet — we'll cover it all in the next tutorial.

# Install nginx from the Bitnami repo
helm install my-nginx bitnami/nginx

# Check the release
helm list

You should see your release listed:

NAME      NAMESPACE  REVISION  STATUS    CHART         APP VERSION
my-nginx  default    1         deployed  nginx-15.4.0  1.25.3

Check the pods:

kubectl get pods

You should see an nginx pod running. How cool is that? One command and you've got nginx deployed with a Deployment, Service, and everything Kubernetes needs.

Let's clean up:

helm uninstall my-nginx

Helm CLI Cheat Sheet

Here are the commands you'll use most. Don't memorize these — you'll learn them naturally:

# Repository commands
helm repo add <name> <url>     # Add a chart repo
helm repo update               # Update repo indexes
helm repo list                 # List added repos
helm search repo <keyword>     # Search for charts

# Release commands
helm install <name> <chart>    # Install a chart
helm upgrade <name> <chart>    # Upgrade a release
helm rollback <name> <rev>     # Roll back to a revision
helm uninstall <name>          # Remove a release
helm list                      # List releases
helm history <name>            # Release history

# Useful flags
--namespace <ns>               # Target namespace
--create-namespace             # Create namespace if missing
--dry-run                      # Preview without applying
--debug                        # Verbose output

What's Next?

You've got Helm installed, connected to your cluster, and even deployed your first chart. Here's what we covered:

  • Installing Helm on macOS, Linux, and Windows
  • Verifying the installation
  • Adding a chart repository
  • Installing and uninstalling a chart

In the next tutorial, we'll create your first Helm chart from scratch. No more using other people's charts — you'll build your own. Let's go!