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.
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:
- find the chart name and source repository
- add the repository to Helm
- update your local index
- inspect the chart defaults
- 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.
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:
Now you can search the local repo index:
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.
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.
Create a namespace if needed, then install the release:
After installation, inspect what was created:
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:
This avoids special-case logic for first deploy versus subsequent deploys.
You can also validate templates before touching the cluster:
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 --installand version pinning in automated workflows.
Related reading
- K8s NodePort service is “unreachable by IP” only on 2/4 slaves in the cluster
- K8S Read config map via go API
- Kafka Find Controller ID in a cluster using Kraft protocol
- Kafka in Kubernetes - Marking the coordinator dead for group
- Kafka broker constantly ISR shrinking and expanding?
- Kafka check queue size
- Kafka in Kubernetes Cluster- How to publish/consume messages from outside of Kubernetes Cluster
- Kafka inaccessible once inside Kubernetes/Minikube

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack 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.