Kubernetes Application Delivery

Helm Basics for Application Packaging

Helm packages Kubernetes resources so applications can be installed, configured, upgraded, and rolled back more consistently.

What this lesson covers

Helm is a package manager for Kubernetes. It helps install, upgrade, configure, and uninstall applications using charts.

  • What Helm is
  • What a chart is
  • What values are
  • How Helm releases work
  • How to install a chart
  • How to upgrade and uninstall a release
  • How to inspect generated manifests
Field note: Helm does not replace understanding Kubernetes YAML. It packages and templates Kubernetes YAML.

The short version

Chart:
  A packaged Kubernetes application.

Values:
  Configuration inputs for the chart.

Release:
  An installed instance of a chart in a cluster.

Before you start

This lab assumes Helm is installed. If it is not, install it using your normal package manager, then verify:

helm version
kubectl config current-context
kubectl get nodes
kubectl create namespace helm-lab

Step 1: Add a chart repository

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

Step 2: Search for a chart

helm search repo bitnami/nginx

Step 3: Inspect chart default values

helm show values bitnami/nginx

Values control how the chart renders Kubernetes manifests.

Step 4: Install a chart

helm install nginx-helm-lab bitnami/nginx -n helm-lab
helm list -n helm-lab
kubectl get all -n helm-lab

Step 5: Inspect the release

helm status nginx-helm-lab -n helm-lab
helm get values nginx-helm-lab -n helm-lab
helm get manifest nginx-helm-lab -n helm-lab

helm get manifest is important because it shows the Kubernetes YAML Helm sent to the cluster.

Step 6: Create a custom values file

Create a file named:

nginx-values-lab.yaml
replicaCount: 2
service:
  type: ClusterIP
resources:
  requests:
    cpu: 100m
    memory: 128Mi
  limits:
    cpu: 500m
    memory: 256Mi

Step 7: Upgrade the release

helm upgrade nginx-helm-lab bitnami/nginx -n helm-lab -f nginx-values-lab.yaml
helm status nginx-helm-lab -n helm-lab
kubectl get pods -n helm-lab

Step 8: View release history

helm history nginx-helm-lab -n helm-lab

Step 9: Roll back a release

helm rollback nginx-helm-lab 1 -n helm-lab
helm history nginx-helm-lab -n helm-lab

Step 10: Render templates locally

helm template nginx-helm-lab bitnami/nginx -n helm-lab -f nginx-values-lab.yaml

This lets you preview the generated Kubernetes YAML before applying it.

Step 11: Uninstall the release

helm uninstall nginx-helm-lab -n helm-lab
helm list -n helm-lab
kubectl get all -n helm-lab

Common Helm commands

helm repo list
helm repo update
helm search repo <name>
helm show values <chart>
helm install <release> <chart> -n <namespace>
helm upgrade <release> <chart> -n <namespace> -f values.yaml
helm list -n <namespace>
helm status <release> -n <namespace>
helm history <release> -n <namespace>
helm rollback <release> <revision> -n <namespace>
helm uninstall <release> -n <namespace>

Common mistakes

  • Installing charts without reviewing values.
  • Assuming Helm values are security-reviewed by default.
  • Not pinning chart versions in real environments.
  • Forgetting that Helm creates normal Kubernetes resources.
  • Using Helm without understanding the rendered manifests.

Step 12: Clean up

kubectl delete namespace helm-lab
Bottom line: Helm packages Kubernetes applications. Use it to install and manage releases, but always inspect values and rendered manifests before trusting a chart.

Check your understanding

  1. What is a Helm chart?
  2. What is a Helm release?
  3. What do values control?
  4. What command installs a chart?
  5. What command upgrades a release?
  6. What command shows rendered Kubernetes YAML from an installed release?
  7. What command previews rendered manifests without installing?
  8. Why should chart values be reviewed?
  9. What command rolls back a release?
  10. Does Helm replace Kubernetes knowledge?
Answer key
  1. A packaged Kubernetes application.
  2. An installed instance of a chart.
  3. How chart templates render Kubernetes resources.
  4. helm install.
  5. helm upgrade.
  6. helm get manifest.
  7. helm template.
  8. They affect exposed services, credentials, resource use, security options, and behavior.
  9. helm rollback.
  10. No. It packages Kubernetes YAML.
← Previous: NetworkPolicies Series index Next: Observability Signals →