Lesson 01 Introduction to Helm
Theme:
Lesson 01 · Slide 1

Introduction to Helm

The package manager for Kubernetes — from raw manifests to repeatable, versioned deployments in minutes.

Learning Objectives

Lesson 01 · Slide 2

The Problem Helm Solves

Deploying to Kubernetes typically means writing and maintaining many YAML manifests — Deployments, Services, ConfigMaps, Secrets, Ingresses, and more. As applications grow, this approach breaks down.

Without Helm

  • Dozens of YAML files per app
  • Copy-paste to change environments
  • No versioning of deployments
  • No rollback mechanism
  • Hard to share configurations

With Helm

  • One chart packages all manifests
  • Values files parameterize environments
  • Every install is a versioned release
  • One-command rollback
  • Share via repositories
Notes: Think of Helm as "apt" or "brew" for Kubernetes — it packages, versions, and manages applications as a single unit.
Lesson 01 · Slide 3

Helm 3 Architecture

Helm 3 removed the server-side component (Tiller) that existed in Helm 2. It is now a client-only tool that talks directly to the Kubernetes API.

Helm 2 (Legacy)

  • Required Tiller pod in-cluster
  • Tiller had broad RBAC permissions
  • Security concerns (cluster-admin by default)
  • Release state stored in ConfigMaps

Helm 3 (Current)

  • No Tiller — pure client-side
  • Uses your kubeconfig credentials
  • Respects existing RBAC policies
  • Release state stored as Secrets
Notes: Release secrets are stored in the same namespace as the release itself. You can see them with kubectl get secrets -l owner=helm.
Lesson 01 · Slide 4

Key Concepts

Helm revolves around four core abstractions that work together to manage Kubernetes applications.

ConceptWhat It IsAnalogy
ChartA package of templated Kubernetes manifestsA .deb or .rpm package
ReleaseA running instance of a chart in a clusterAn installed package on a machine
RepositoryA collection of charts available for downloadAn apt/yum repository
ValuesConfiguration parameters that customize a chartA config file for the package

Chart Structure (Preview)

mychart/
  Chart.yaml          # Metadata (name, version, description)
  values.yaml         # Default configuration values
  templates/          # Kubernetes manifest templates
    deployment.yaml
    service.yaml
    ingress.yaml
Lesson 01 · Slide 5

Artifact Hub & Repositories

Artifact Hub is the central place to discover, install, and publish Kubernetes packages including Helm charts.

Working with Repositories

# Add the official Bitnami repository
helm repo add bitnami https://charts.bitnami.com/bitnami

# Update local repo index
helm repo update

# Search for charts
helm search repo nginx

# Search Artifact Hub directly
helm search hub wordpress

Popular Chart Repositories

  • Bitnami — largest collection of curated, production-ready charts
  • Prometheus Community — monitoring stack (Prometheus, Grafana, Alertmanager)
  • Ingress NGINX — NGINX ingress controller
  • Jetstack — cert-manager for TLS certificates
Lesson 01 · Slide 6

helm install Basics

Installing a chart creates a release — a named, versioned instance of the application in your cluster.

# Install nginx with release name "my-nginx"
helm install my-nginx bitnami/nginx

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

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

# Check release status
helm status my-nginx

# List all releases
helm list

Values Override Order

Values are merged in this priority (highest wins):

  1. --set flags on the command line
  2. -f values.yaml file(s)
  3. Chart's default values.yaml
Lesson 01 · Slide 7

kubectl apply vs Helm

A side-by-side comparison of managing the same application with raw manifests versus Helm.

OperationRaw kubectlHelm
Deploykubectl apply -f ./manifests/helm install myapp ./mychart
UpdateEdit YAML, kubectl apply againhelm upgrade myapp ./mychart
RollbackFind old YAML, apply manuallyhelm rollback myapp 1
Deletekubectl delete -f ./manifests/helm uninstall myapp
Version historyNone (unless GitOps)helm history myapp
Multi-env configKustomize overlays or copy files-f staging.yaml / -f prod.yaml
Notes: Helm does not replace kubectl — it generates manifests and applies them via the Kubernetes API. You can always inspect what Helm will send with helm template.
Lesson 01 · Slide 8

Lab & Homework

Lab Exercises

  1. Install Helm and verify the installation
  2. Add a repository, search for charts, and inspect chart details
  3. Install a chart with custom values and explore the release

Homework Tasks

  1. Compare deploying an app with raw manifests vs Helm
  2. Explore Artifact Hub and document 5 charts
  3. Perform an upgrade and rollback cycle

Reference

Official Helm docs: helm.sh/docs

Artifact Hub: artifacthub.io

1 / ?