quickstart5 min read

Getting Started with Helm: Install and Manage Kubernetes Charts

SFEIR Institute

Key Takeaways

  • Helm is the official package manager for Kubernetes
  • A Helm chart encapsulates all YAML manifests for an application
  • 'Three essential commands: helm install, upgrade, rollback'

This Helm Kubernetes beginner tutorial guides you from installation to your first deployment in less than 30 minutes. Helm, Kubernetes' package manager, simplifies deploying complex applications by encapsulating YAML manifests in reusable and versioned charts. If you're an infrastructure engineer, Cloud operations engineer, or system administrator, this skill accelerates your deployment workflows.

TL;DR: Helm allows you to deploy Kubernetes applications with a single command (helm install), update them (helm upgrade), and roll them back (helm rollback). It's the standard tool used by 70% of Kubernetes organizations.

Professionals who want to go further take the LFS458 Kubernetes Administration training.

What is Helm and why use it?

Helm is Kubernetes' official package manager. A Helm chart is a collection of YAML files that define a complete Kubernetes application: Deployments, Services, ConfigMaps, Secrets, Ingress.

According to Orca Security 2025, 70% of organizations use Helm in their cloud environments. This massive adoption is explained by three advantages:

AdvantageWithout HelmWith Helm
Deploymentkubectl apply -f *.yaml (manual order)helm install (automated)
UpdateManual manifest modificationhelm upgrade with values
RollbackManual search and restorationhelm rollback to version N
ReproducibilityVariable depending on operatorGuaranteed by the chart
Key takeaway: Helm standardizes deployment and reduces human errors through abstraction and reproducibility.

How to install Helm? Helm Kubernetes beginner tutorial

Installation on different OS

# macOS with Homebrew
brew install helm

# Linux (official script)
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# Windows with Chocolatey
choco install kubernetes-helm

# Verification
helm version
# version.BuildInfo{Version:"v3.14.2", ...}

Initial configuration

Helm 3 doesn't require a server component (Tiller was removed). Simply ensure kubectl is configured for your cluster:

# Verify cluster connection
kubectl cluster-info

# Add the official repository
helm repo add stable https://charts.helm.sh/stable
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

To configure your local environment, consult Install Kubernetes locally: complete guide with Minikube, Kind and K3d.

How to deploy your first application with Helm?

Search for a chart

# Search in configured repos
helm search repo nginx

# Search on Artifact Hub (public registry)
helm search hub wordpress

Install a chart

# Basic installation
helm install my-nginx bitnami/nginx

# Installation with dedicated namespace
helm install my-nginx bitnami/nginx --namespace web --create-namespace

# Installation with custom values
helm install my-nginx bitnami/nginx \
--set service.type=ClusterIP \
--set replicaCount=3

Verify the deployment

# List releases
helm list

# Detailed status
helm status my-nginx

# View created resources
kubectl get all -l app.kubernetes.io/instance=my-nginx
Key takeaway: A Helm release is an instance of a chart deployed in the cluster. You can have multiple releases of the same chart.

How to customize a Helm deployment?

The values.yaml file

Each chart contains a values.yaml file defining default values. Check available values:

# Display default values
helm show values bitnami/nginx > values.yaml

# Install with a custom values file
helm install my-nginx bitnami/nginx -f my-values.yaml

Customization example

# my-values.yaml
replicaCount: 3

image:
tag: "1.25.3"

service:
type: LoadBalancer
port: 80

resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"

ingress:
enabled: true
hostname: app.example.com

These configurations align with practices described in the Kubernetes Memo: objects, API resources and shortcuts.

How to update and rollback?

Update a release

# Modify values
helm upgrade my-nginx bitnami/nginx --set replicaCount=5

# Or with a values file
helm upgrade my-nginx bitnami/nginx -f updated-values.yaml

# View revision history
helm history my-nginx

Rollback to a previous version

# Rollback to revision 1
helm rollback my-nginx 1

# Check status
helm status my-nginx

Instant rollback offers security that manual deployments cannot match.

How to create your own chart?

Chart structure

# Create a new chart
helm create my-app

# Generated structure
my-app/
├── Chart.yaml          # Chart metadata
├── values.yaml         # Default values
├── templates/          # Kubernetes templates
│   ├── deployment.yaml
│   ├── service.yaml
│   ├── ingress.yaml
│   └── _helpers.tpl    # Helper functions
└── charts/             # Dependencies

Basic template

# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "my-app.fullname" . }}
labels:
{{- include "my-app.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "my-app.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "my-app.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: {{ .Values.service.port }}
Key takeaway: Helm templates use Go templates. Variables between {{ }} are replaced by values.yaml values.

Debugging Helm: resolving common errors

Preview manifests

# Render templates without installing
helm template my-nginx bitnami/nginx -f values.yaml

# Debug mode
helm install my-nginx bitnami/nginx --dry-run --debug

Common errors

ErrorCauseSolution
Error: INSTALLATION FAILEDInvalid manifestsUse --dry-run --debug
cannot re-use a nameRelease already existsUninstall or choose another name
context deadline exceededNetwork timeoutCheck cluster connection

For in-depth pod diagnosis, consult Debug a pod in CrashLoopBackOff: causes, diagnosis and solutions.

Essential Helm commands

# Repo management
helm repo add [name] [url]
helm repo update
helm repo list

# Search
helm search repo [keyword]
helm search hub [keyword]

# Installation and management
helm install [release] [chart]
helm upgrade [release] [chart]
helm rollback [release] [revision]
helm uninstall [release]

# Inspection
helm list
helm status [release]
helm history [release]
helm get values [release]

Helm Kubernetes beginner tutorial: getting started checklist

StepCommandValidation
Install Helmbrew install helmhelm version
Add repohelm repo add bitnami ...helm repo list
First installhelm install test bitnami/nginxhelm list
Customize-f values.yamlhelm get values
Updatehelm upgradehelm history
Clean uphelm uninstall testhelm list

For deeper Kubernetes Deployment and Production, Helm is an essential tool.

Take action: deploy your first chart

This Helm Kubernetes beginner tutorial gave you the basics to install, configure, and manage Kubernetes applications. According to the CNCF Annual Survey 2025, 82% of organizations run Kubernetes in production. Mastering Helm positions you among professionals capable of deploying quickly and reliably.

Install Helm now, deploy an nginx chart, then customize it with your own values. To go further:

Consult Deploy your first Kubernetes pod in 15 minutes for fundamentals before Helm, or explore Kubernetes Tutorials and Practical Guides.

Contact our advisors to organize your training.