Kubernetes
Helm Charts
Helm Hub
Installation Guide
DevOps

K8s how to install charts from the Helm Hub

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

Introduction

People often say "install from Helm Hub", but Helm does not install charts directly from a search site. The practical workflow is to discover the chart, add its repository to Helm, inspect the chart values, and then install the release into your cluster. That was true in the Helm Hub era and it remains true with modern chart catalogs.

Discovery and Installation Are Separate Steps

The chart catalog is for discovery. Installation happens from the chart repository URL or an OCI registry reference. That distinction matters because finding a chart page is not enough to deploy it.

A sensible installation flow looks like this:

  1. find the chart name and source repository
  2. add the repository to Helm
  3. update your local index
  4. inspect the chart defaults
  5. install or upgrade with explicit values

If you skip the inspection step, you are deploying with someone else's defaults, which is rarely what you want in a real cluster.

Verify Your Tooling First

Before installing a chart, confirm that both Helm and kubectl are pointed at the cluster you intend to change.

bash
helm version
kubectl config current-context
kubectl get nodes

If cluster access is broken, Helm will fail later in a less obvious way. It is better to catch that up front.

Add the Chart Repository

Once you know the repository URL, register it with Helm. For example, to use the Bitnami repository:

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

Now you can search the local repo index:

bash
helm search repo bitnami/nginx

That search is not just cosmetic. It verifies that the repository was added correctly and the chart name you plan to install actually exists.

Inspect Chart Metadata and Values

Do not install blind. Read the chart metadata and defaults first.

bash
helm show chart bitnami/nginx
helm show values bitnami/nginx

This usually reveals the parts you need to override:

  • replica count
  • service type
  • ingress configuration
  • persistent storage
  • resource requests and limits
  • image tag and image pull settings

Defaults are often meant for convenience, not for production safety.

Install with a Values File

For anything beyond a trivial demo, prefer a values file over a long chain of --set flags.

yaml
1replicaCount: 2
2
3service:
4  type: ClusterIP
5
6resources:
7  requests:
8    cpu: 100m
9    memory: 128Mi
10  limits:
11    cpu: 250m
12    memory: 256Mi

Create a namespace if needed, then install the release:

bash
1kubectl create namespace web
2
3helm install my-nginx bitnami/nginx \
4  --namespace web \
5  -f values.yaml

After installation, inspect what was created:

bash
helm list -n web
kubectl get all -n web

The release name my-nginx is important because upgrades, rollbacks, and uninstalls are tied to it.

Prefer upgrade --install for Repeatable Workflows

If you are applying the same deployment from a script or CI system, use the idempotent form:

bash
helm upgrade --install my-nginx bitnami/nginx \
  --namespace web \
  -f values.yaml

This avoids special-case logic for first deploy versus subsequent deploys.

You can also validate templates before touching the cluster:

bash
helm lint bitnami/nginx -f values.yaml
helm template my-nginx bitnami/nginx -f values.yaml

That gives you a chance to inspect rendered manifests and catch obvious value mistakes before deployment.

Common Pitfalls

The most common mistake is treating a discovery site as an install source. Helm needs the repository or OCI reference, not just the chart listing page.

Another issue is skipping helm show values and deploying with defaults that expose a service publicly, allocate the wrong storage class, or omit resource limits. Those are easy mistakes to make and tedious to unwind later.

Long --set chains are another trap. They work for one or two overrides, but they become unreadable fast and are difficult to review in version control. A values file is much easier to maintain.

Finally, pin chart versions when stability matters. If you always pull the latest chart revision, you may get unexpected behavior changes on the next install or upgrade.

Summary

  • Install charts from their repository or registry, not directly from a chart catalog page.
  • Add the repo, update it locally, and verify the chart name before installing.
  • Inspect chart metadata and defaults before deploying anything.
  • Use a values file for reproducible configuration.
  • Prefer helm upgrade --install and version pinning in automated workflows.

Related reading
Course
Beginner
27 lessons
10 hours
System Design Fundamentals

Build a strong foundation in designing scalable, reliable distributed systems.

View the course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

All Rights Reserved.