Helm OCI Registry Storage Calculator
Project OCI-based Helm chart registry storage needs as chart artifacts accumulate.
About Helm OCI Registry Storage Calculator
Since Helm 3.8, charts can be pushed to any OCI-compliant registry (`helm push`) as OCI artifacts made up of content-addressable layers, typically a small config layer plus one or more content layers holding the packaged chart. Because layers are addressed by content digest, identical layers shared across chart versions — common when only a few files change between releases — are stored once, so real-world storage is the raw layer total scaled down by however much cross-version content actually overlaps.
Formula
dedupedStorage = charts × versions × layersPerVersion × avgLayerSize × deduplicationRatio
- C
- Distinct charts
- V
- Versions per chart
- L
- Average layers per version
- A
- Average layer size in KB
- d
- Deduplication ratio (fraction of unique content)
- S
- Storage after deduplication in KB
Worked example
With the default values below, Helm OCI Registry Storage Calculator returns Storage After Deduplication of 1.85. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Distinct Chartsaccepts 1–100,000 charts
- 15 charts
- Versions per Chartaccepts 1–10,000 versions
- 10 versions
- Average Layers per Versionaccepts 1–100 layers
- 2 layers
- Average Layer Sizeaccepts 0.1–1,000,000 KB
- 18 KB
- Deduplication Ratioaccepts 0–1 ×
- 0.35 ×
Results
- Storage After Deduplication
- 1.85 MB
- Raw Storage Before Deduplication
- 5,400.0 KB
- Storage Saved by Deduplication
- 65.0%
Step by step
- 1Total layers = charts × versions × layers/version= 300 layers
- 2Raw storage before dedup= 5400.0KB
- 3Storage after deduplication= 1890.0KB (1.85MB)
Assumptions and limits
- The result is derived only from the 5 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
- Figures are rounded for display to 2 decimal places, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
Frequently Asked Questions
How is Helm OCI storage different from a classic chart repository?
A classic repo (index.yaml + .tgz files) stores every version as a fully independent blob with no sharing; an OCI registry stores content-addressable layers, so bytes identical across versions (e.g. an unchanged Chart.yaml or templates directory) are only stored once registry-wide.
What typically drives good deduplication ratios?
Charts with frequent patch releases that only tweak a few values or one template tend to dedupe well since most layer content is unchanged; charts that regenerate large CRD bundles or vendored dependencies on every release dedupe poorly.
Do different registries implement dedup the same way?
No — dedup effectiveness depends on the registry's blob storage backend and garbage collection behavior; some registries dedupe globally across all repositories, while others scope deduplication per-repository.
