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
- What is a Helm chart?
- What is a Helm release?
- What do values control?
- What command installs a chart?
- What command upgrades a release?
- What command shows rendered Kubernetes YAML from an installed release?
- What command previews rendered manifests without installing?
- Why should chart values be reviewed?
- What command rolls back a release?
- Does Helm replace Kubernetes knowledge?
Answer key
- A packaged Kubernetes application.
- An installed instance of a chart.
- How chart templates render Kubernetes resources.
- helm install.
- helm upgrade.
- helm get manifest.
- helm template.
- They affect exposed services, credentials, resource use, security options, and behavior.
- helm rollback.
- No. It packages Kubernetes YAML.