3 min to read
Understanding Helm - The Kubernetes Package Manager

Overview
Helm is the package manager for Kubernetes, providing functionality to package, share, and use software built for Kubernetes.
What is Helm?
Helm uses a package format called chart, where chart is a collection of files describing the Kubernetes resource set.
Using a single chart, you can deploy simple ones such as memcached pods to complex ones such as entire web app stacks with HTTP servers, databases, caches, etc.
Charts consist of a collection of files inside the directory. The directory name is the name of the chart (excluding version information).
Key Components
- Chart - Package format for Kubernetes resources
- Repository - Location to share and collect charts
- Release - Instance of a chart running in a cluster
Helm supports chart repositories that can be used to store and share Helm charts.
The distributed community helm chart repository is located at Artifact Hub.
Artifact Hub is a web-based application that can find, install, and publish packages and configurations for Cloud Native Computing Foundation (CNCF) projects, including publicly available decentralized Helm charts.
Installation
Prerequisites for Installation
The following prerequisites are required before installing helm.
- Kubernetes Cluster
- Determining the security configuration to apply to the installation, if any
- Installing and Configuring Helm
# Method 1: Binary Release
wget https://get.helm.sh/helm-v3.0.0-linux-amd64.tar.gz
tar -zxvf helm-v3.0.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
# Method 2: Script
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
# Method 3: Source Make
git clone https://github.com/helm/helm.git
cd helm
make
- You can check the installation method according to the OS here.
Chart Structure
wordpress/
Chart.yaml # Chart metadata
values.yaml # Default configuration
templates/ # Kubernetes manifest templates
charts/ # Dependencies
crds/ # Custom Resource Definitions
Basic Chart Files
# Chart.yaml example
apiVersion: v2
name: my-awesome-app
description: A Helm chart for Kubernetes
version: 1.0.0
appVersion: 1.16.0
# values.yaml example
replicaCount: 1
image:
repository: nginx
pullPolicy: IfNotPresent
tag: ""
Common Helm Commands
# Search for charts
helm search hub
helm search repo
# Install a chart
helm install [RELEASE_NAME] [CHART]
# Check status
helm status [RELEASE_NAME]
# List releases
helm list
# Upgrade release
helm upgrade [RELEASE_NAME] [CHART]
# Rollback
helm rollback [RELEASE] [REVISION]
# Delete release
helm delete [RELEASE_NAME]
# Lint chart
helm lint [PATH]
Helm Command Reference Table
🔧 Command | 📄 Purpose | 💻 Example |
---|---|---|
search |
Find charts | helm search hub wordpress |
install |
Install a chart | helm install my-release ./chart |
📊 status |
Check release status | helm status my-release |
⬆upgrade |
Upgrade a release | helm upgrade my-release ./chart |
↩rollback |
Rollback to previous version | helm rollback my-release 1 |
delete |
Remove a release | helm delete my-release |
list |
Show all releases | helm list --all-namespaces |
lint |
Validate chart | helm lint ./chart |
1. Version Control → Always version your charts
2. Values Management → Keep default values.yaml minimal
3. Template Organization → Use _helpers.tpl for common functions
4. Testing → Use helm lint regularly
Comments