BLOG14: Helm Chart Basics

BLOG 501: Helm & Kustomize Useful Commands


HELM — Frequently Used Troubleshooting Commands

1. List installed applications

helm list -A

or for a specific namespace:

helm list -n <namespace>

2. List added repositories

helm repo list

3. List all versions of a chart

(From a repo)

helm search repo <chart-name> --versions

Example:


4. List installed versions of an app

Example:


5. Install an app

Example:


6. Upgrade an app


7. Rollback an app

Example:


8. Dry run (no apply)

Shows what Helm would install.

Option A — full server-side dry run:

Option B — render templates only (no cluster needed):


9. Uninstall


10. Clean old chart repos


KUSTOMIZE — Frequently Used Troubleshooting Commands

Kustomize is built into kubectl.


1. Dry-run (client-side)

Shows generated YAML without applying.

Example:


2. Dry-run apply

Validate against Kubernetes API without applying:

or server-side validation:


3. Build (same as dry-run)

Official way (if standalone kustomize is installed):


4. View final resource names

Useful for checking nameSuffix.


5. Validate patches


6. Apply overlay


7. Delete overlay


8. Debug configmap replacement

Check that overlay replaced configmap content:


9. Validate overlay structure

(Requires kustomize binary)


Top 20 Troubleshooting Commands (Quick Reference)

HELM

Task
Command

List all releases

helm list -A

List repos

helm repo list

Search chart versions

helm search repo <chart> --versions

Install

helm install <name> <chart> -f values.yaml

Upgrade

helm upgrade <name> <chart> -f values.yaml

Rollback

helm rollback <name> <revision> -n <ns>

Template render

helm template <name> <chart>

Dry run

helm install <name> <chart> --dry-run --debug

View release history

helm history <name> -n <ns>

Uninstall

helm uninstall <name> -n <ns>


KUSTOMIZE

Task
Command

Dry-run build

kubectl kustomize dev/

Client-side dry-run

kubectl apply -k dev/ --dry-run=client

Server-side dry-run

kubectl apply -k dev/ --dry-run=server

Build using kustomize binary

kustomize build dev/

Apply overlay

kubectl apply -k dev/

Delete overlay

kubectl delete -k dev/

Inspect generated YAML

`kubectl kustomize dev/

less`

Check suffix labeling

`kubectl kustomize dev/

grep name:`

Inspect a specific resource

`kubectl kustomize dev/

yq '.items[]

select(.kind=="Ingress")'(ifyq` installed)

Print patches applied

`kustomize build dev/

grep -A3 ingress`


Helm Terminology Explained

Understanding these four terms is essential to working with Helm:

  • Release Name

  • Chart Name

  • Chart Path

  • Registry URI

Let's break them down.


1️⃣ Release Name

👉 The name you give to your deployed application.

A release is a running instance of a Helm chart in your Kubernetes cluster.

You choose this name when installing:

Here:

  • Release Name = website-dev

You can have multiple releases from the same chart, like:

  • website-dev

  • website-prod

  • website-test

Each one is independent.

Why important?

Used for:

  • upgrades

  • rollback

  • uninstall

  • history

Examples:


2️⃣ Chart Name

👉 The name of the Helm package itself.

Inside Chart.yaml:

Here:

  • Chart Name = helm-website

This name identifies your chart as a package, similar to how nginx identifies an apt/yum package.

Example from Helm Hub:

  • bitnami/nginx

  • ingress-nginx/ingress-nginx

  • bitnami/mongodb

These are chart names stored inside chart repositories.


3️⃣ Chart Path

👉 Where the chart exists on disk (local path) or in a registry (remote path).

Local chart path:

Installation example:

Here:

  • Chart Path = ./helm-website

Remote chart path (from a repo):

Here:

  • Chart Name = nginx

  • Repo Name = bitnami

  • Chart Path = bitnami/nginx

Helm resolves this using the repo URL.


4️⃣ Registry URI

👉 Where charts are stored and downloaded from.

A Helm repository is like a container registry but for Helm charts.

Example registry URIs:

Repo Name
Registry URI

bitnami

https://charts.bitnami.com/bitnami

ingress-nginx

https://kubernetes.github.io/ingress-nginx

grafana

https://grafana.github.io/helm-charts

You add them using:

Then you can install charts from that repo:

OCI Registry URI (New Helm feature)

Example:

Install:


**Final Summary

Term
Meaning
Example

Release Name

Name of the running instance of a chart

website-dev

Chart Name

Name of the packaged chart (from Chart.yaml)

helm-website

Chart Path

Location of the chart on disk or repo

./helm-website, bitnami/nginx

Registry URI

URL where charts are stored

https://charts.bitnami.com/bitnami

Last updated