What is a Helm Subchart and How to Use It
When you start using Helm to manage applications in Kubernetes, you’ll quickly discover that not everything should live in a single chart. Sometimes, an application depends on other components — like a database, cache, or monitoring tool. This is where subcharts come into play.
What is a Subchart?
A subchart is simply another Helm chart that lives inside the charts/
directory of your main chart.
It’s a way to define dependencies. For example, your app may need Redis. Instead of reinventing the wheel, you include the Redis Helm chart as a subchart.
Why Use Subcharts?
- Reusability — You don’t need to copy and paste manifests for dependencies.
- Versioning — Lock dependencies to specific versions.
- Separation of concerns — Your app chart remains clean, while subcharts handle their own configuration.
- Flexibility — You can override subchart values from the parent chart.
Example: Adding a Subchart
Let’s say your application requires Redis. You can declare it in Chart.yaml
:
# Chart.yaml
dependencies:
- name: redis
version: 17.8.3
repository: "https://charts.bitnami.com/bitnami"
Then run
helm dependency update
This will download Redis into the charts/ directory.
Overriding Values in Subcharts
You can control Redis settings directly from your parent chart’s values.yaml:
redis:
architecture: standalone
auth:
enabled: false
This way, your team doesn’t need to edit the Redis chart itself — only override the values.
Final Thoughts
Helm subcharts are a simple but powerful way to manage dependencies in Kubernetes. Instead of bloating your chart with every piece of infrastructure, you can rely on existing, battle-tested charts — while still controlling their behavior.
TL;DR
- Subcharts = nested Helm charts.
- Great for dependencies like databases or monitoring tools.
- Managed via dependencies in Chart.yaml.
- Easily configurable via parent values.yaml.