Helm Package Size Calculator
Estimate the compressed .tgz size of a `helm package` build from its Chart.yaml, templates, values, and bundled CRDs.
Inputs
Size of the chart metadata file.
Combined size of all files under templates/.
Size of values.yaml (and values.schema.json if present).
Combined size of files under crds/, often the largest contributor for operator charts.
Fraction of original size remaining after gzip (YAML/text typically compresses to ~25–35%).
Compressed .tgz Size
19.95KB
Uncompressed Source Size
66.50KB
Space Saved by Compression
70.0%
Step by step
Uncompressed = Chart.yaml + templates + values + CRDs
0.5KB + 20KB + 6KB + 40KB
= 66.50KB
Compressed .tgz size
66.50KB × 0.3
= 19.95KB
How it works
`helm package` bundles Chart.yaml, the templates/ directory, values.yaml, and any crds/ into a single gzip-compressed tarball. Because all of these are text (YAML, JSON, Go templates), gzip typically compresses the archive down to roughly 25–35% of its uncompressed size, so estimating final .tgz size means summing the raw component sizes and then applying that compression ratio.
Formula
tgzSize = (chartYaml + templates + values + crds) × compressionRatio
- Y
- Chart.yaml size in KB
- T
- Templates size in KB
- V
- Values size in KB
- D
- CRDs size in KB
- c
- Gzip compression ratio (fraction remaining)
- S
- Compressed .tgz size in KB
Frequently Asked Questions
Why are CRDs often the largest part of a chart package?
CustomResourceDefinitions embed a full OpenAPI v3 schema for validation, which for complex CRDs (e.g. operators with many configurable fields) can run to hundreds of KB per CRD — far larger than a typical Deployment or Service template.
Does helm package compress CRDs differently from templates?
No — everything in the chart directory (crds/, templates/, values.yaml, Chart.yaml) is bundled into the same tar stream and gzip-compressed together as one .tgz.
How can I reduce final package size?
Trim unused fields from CRD schemas where you control them, remove verbose comments from templates before packaging, and avoid embedding large binary or base64 blobs directly in values.yaml.
You might also need
- Helm Chart Version CalculatorCommonly used together
- Helm Chart Dependency CalculatorCommonly used together
- Helm OCI Registry Storage CalculatorCommonly used together
- Helm Repository Storage CalculatorCommonly used together
- Helm Manifest Size CalculatorCommonly used together
- Helm Values Size CalculatorAlso in Helm