Skip to content
Calcrivo

Helm Chart Dependency Calculator

Calculate the total number of direct and transitive chart dependencies and the total download size pulled by `helm dependency update`.

Inputs

charts

Charts listed directly in this chart's Chart.yaml dependencies block.

charts

Dependencies pulled in indirectly by the direct dependencies' own charts.

KB

Average .tgz size of each dependency chart pulled during `helm dependency update`.

Total Dependencies

10charts

Total Download Size

0.244MB

Transitive Share of Dependencies

60.0%

Step by step

  1. Total dependencies = direct + transitive

    4 + 6

    = 10 charts

  2. Total download size = total deps × avg chart size

    10 × 25KB

    = 250.00KB (0.244MB)

How it works

Helm resolves and downloads every chart listed under `dependencies` in Chart.yaml into the `charts/` directory, and those subcharts can themselves declare further dependencies. The effective dependency count a `helm dependency update` pulls is the sum of direct and transitive charts, and the total bandwidth/storage cost of that pull is that count multiplied by the average packaged chart size.

Formula

totalDownloadSize = (directDeps + transitiveDeps) × avgChartSize

D
Direct dependencies
T
Transitive dependencies
C_{avg}
Average chart package size in KB
S
Total download size in KB

Frequently Asked Questions

Does Helm deduplicate shared transitive dependencies?

No — by default each parent chart vendors its own copy of a dependency into its `charts/` directory, so the same subchart can be downloaded and stored multiple times across a dependency tree unless aliased and managed carefully.

Where do downloaded dependencies get stored?

In the chart's local `charts/` directory as `.tgz` archives (or unpacked directories), which are then bundled into the parent chart's own package when it's built.

How can I reduce dependency download size?

Use `condition` and `tags` in Chart.yaml to make optional subcharts skippable, pin to minimal versions, and consider extracting rarely-changing shared logic into a library chart instead of a full subchart.

You might also need