Labs ICT
⭐ Pro Login

Helm Charts

Package manager for deploying applications on Kubernetes

Helm β€” Package Manager for Kubernetes

Helm is the package manager for Kubernetes. It lets you define, install, and upgrade Kubernetes applications using reusable packages called Charts.

Think of Helm as apt or npm for Kubernetes. Instead of writing hundreds of YAML files, you install a pre-built chart with sensible defaults.

Helm Architecture


  Helm Chart                    Kubernetes Cluster
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Chart.yaml     β”‚          β”‚                    β”‚
  β”‚  values.yaml    β”‚  helm    β”‚  Deployments       β”‚
  β”‚  templates/     │──install─▢  Services         β”‚
  β”‚    deployment   β”‚          β”‚  ConfigMaps        β”‚
  β”‚    service      β”‚          β”‚  Secrets           β”‚
  β”‚    ingress      β”‚          β”‚  Ingresses         β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  A chart is a package of K8s manifests

Installing Helm


# macOS
brew install helm

# Windows
choco install kubernetes-helm

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

# Verify installation
helm version

Using Helm


# Add a repository
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

# Search for charts
helm search repo nginx

# Install a chart
helm install my-nginx bitnami/nginx

# Install with custom values
helm install my-nginx bitnami/nginx --set service.type=NodePort

# List installed releases
helm list

# Upgrade a release
helm upgrade my-nginx bitnami/nginx --set replicaCount=3

# Rollback
helm rollback my-nginx 1

# Uninstall
helm uninstall my-nginx

Creating Your Own Chart


# Scaffold a new chart
helm create my-chart

# Structure:
# my-chart/
#   Chart.yaml          # Chart metadata
#   values.yaml         # Default configuration values
#   templates/          # K8s manifest templates
#     deployment.yaml
#     service.yaml
#     ingress.yaml
#     _helpers.tpl      # Template helpers

# Lint your chart
helm lint my-chart

# Template rendering (debug)
helm template my-chart

# Package the chart
helm package my-chart

# Install from local chart
helm install my-release ./my-chart

Helm Best Practices

Use values.yaml for configuration β€” Do not hardcode values in templates.

Version your charts β€” Use semantic versioning in Chart.yaml.

Use --dry-run β€” Test your changes before applying them.

Keep charts small β€” One chart per application or microservice.

πŸ§ͺ Quick Quiz

What is Helm in Kubernetes?