Skip to content
Calcrivo

Helm Repository Storage Calculator

Estimate total storage consumed by a classic Helm chart repository (index.yaml + .tgz packages) across all charts and versions.

Inputs

charts

Number of distinct chart names hosted in the repository.

versions

Average number of published versions retained per chart.

KB

Average .tgz size of a single chart version package.

Total Repository Storage

8.79MB

Total Chart Versions Stored

300versions

Total Repository Storage

0.0086GB

Step by step

  1. Total versions = charts × versions per chart

    20 × 15

    = 300 versions

  2. Storage = total versions × avg chart size

    300 × 30KB

    = 9000.0KB (8.79MB)

How it works

A classic Helm chart repository (served via ChartMuseum, S3 + index.yaml, GitHub Pages, etc.) stores every published version of every chart as a separate .tgz package, plus a lightweight index.yaml listing metadata for all of them. Total storage scales linearly with the number of charts, how many versions of each are retained, and the average packaged size — with the index.yaml itself usually a negligible fraction of the total once charts number in the dozens.

Formula

storage = charts × versionsPerChart × avgChartSize

C
Number of distinct charts
V
Versions retained per chart
P_{avg}
Average chart package size in KB
S
Total repository storage in KB

Frequently Asked Questions

Does index.yaml storage matter at scale?

It can — index.yaml grows with every version of every chart since it embeds full Chart.yaml metadata per entry, so repositories with thousands of versions can end up with multi-MB index files that slow down `helm repo update`, separate from package storage.

How do I reduce chart repository storage?

Prune old pre-release or superseded versions, deduplicate large static assets by keeping them out of the chart (reference external images/manifests instead), and compress ChartMuseum storage backends where supported.

Is OCI-based storage different from a classic chart repo?

Yes — OCI registries (Helm's default since 3.8) store charts as OCI artifacts with content-addressable layers, which can deduplicate identical layers across versions, unlike a classic repo where every .tgz is a fully independent blob.

You might also need