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.