Deploying with Helm

Helm packages Kubernetes manifests into reusable, configurable charts you can install in one command.

Syntaxhelm install <release> <chart> -f values.yaml

Helm is the Kubernetes package manager. A chart bundles the manifests for an app, and values.yaml lets you customize each install without editing templates. Helm is the standard way to install both third-party add-ons and your own apps on EKS.

Why teams use Helm

  • Install complex apps (ingress controllers, monitoring stacks) with one command.
  • Override settings per environment through values files.
  • Version, upgrade, and roll back releases cleanly.

Many EKS add-ons — including the AWS Load Balancer Controller and Karpenter — are distributed as Helm charts.

Example

Example · bash
# Add a repo, then install and upgrade a release
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

helm install my-nginx bitnami/nginx --version 15.0.0 \
  --set service.type=ClusterIP

# Upgrade with new values, or roll back
helm upgrade my-nginx bitnami/nginx -f values.yaml
helm rollback my-nginx 1

When to use it

  • A platform team packages a complex microservice with 12 Kubernetes manifests into a Helm chart so developers can deploy it with one command and override only the values they need.
  • A DevOps engineer uses helm upgrade --install in CI/CD pipelines to idempotently deploy or upgrade an application on every merge to main.
  • A release manager uses helm rollback to revert a failed production deployment to the previous chart version in under 30 seconds.

More examples

Add a Helm repo and install a chart

Adds the Bitnami chart repository, updates the index, and installs Redis into the 'cache' namespace with a single value override.

Example · bash
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install my-redis bitnami/redis \
  --namespace cache \
  --create-namespace \
  --set auth.password=supersecret

Upgrade with custom values file

Upgrades or installs the api chart using a production values file, overriding just the image tag, and waits up to 5 minutes for pods to be ready.

Example · bash
helm upgrade --install my-api ./charts/api \
  --namespace production \
  --values values-prod.yaml \
  --set image.tag=v2.1.0 \
  --wait --timeout 5m

Roll back a Helm release

Shows the release history, rolls back to revision 3, and checks the release status to confirm the rollback succeeded.

Example · bash
helm history my-api -n production
helm rollback my-api 3 -n production
helm status my-api -n production

Discussion

  • Be the first to comment on this lesson.