Helm Chart Complexity Score
Score a Helm chart's overall complexity from templates, values and dependencies.
Inputs
Number of template files under templates/ (including subcharts).
Direct + transitive chart dependencies.
Number of CustomResourceDefinitions bundled in crds/.
Number of pre/post-install/upgrade/rollback hook manifests.
Total number of leaf keys in the merged values schema.
Chart Complexity Score
64.0
Complexity Tier
moderate
CRDs Contribution
5.0
Dependencies Contribution
9.0
Step by step
Templates score = templates × 2
20 × 2
= 40
Dependencies score = deps × 3
3 × 3
= 9
CRDs score = CRDs × 5
1 × 5
= 5
Hooks score = hooks × 2
2 × 2
= 4
Values score = keys × 0.1
60 × 0.1
= 6.0
Total complexity score
40 + 9 + 5 + 4 + 6.0
= 64.0 (moderate)
How it works
This weighted score approximates how hard a Helm chart is to understand, test, and safely upgrade by combining five structural signals: template count (rendering surface area), dependencies (external coupling), CRDs (schema and cluster-wide risk, weighted heaviest), hooks (lifecycle ordering complexity), and values keys (configuration surface area, weighted lightest since keys are individually low-risk). Charts scoring 'high' or 'very high' typically benefit from splitting into smaller charts, reducing CRD ownership, or consolidating hooks.
Formula
score = templates×2 + deps×3 + crds×5 + hooks×2 + valuesKeys×0.1
- T
- Number of template files
- D
- Number of chart dependencies
- C
- Number of CRDs
- H
- Number of lifecycle hooks
- V
- Number of values keys
- S
- Complexity score
Frequently Asked Questions
Why do CRDs carry the heaviest weight in this score?
CRDs are cluster-scoped and affect every namespace, are hard to safely version or roll back once other resources depend on them, and mistakes can be far more disruptive than a bad Deployment template — so they carry the highest per-unit weight (5×).
Why do values keys carry the lightest weight?
An individual values key is low-risk in isolation (it's just a configuration knob), so the score treats a large values surface as a mild complexity signal (0.1× per key) rather than a major structural risk, unlike dependencies or CRDs.
What should I do if my chart scores 'very high'?
Look for the largest contributor in the breakdown — commonly CRDs or dependency count — and consider splitting the chart into an umbrella chart with smaller subcharts, moving CRD ownership to a dedicated operator chart, or consolidating redundant hooks.
You might also need
- Helm Chart Version CalculatorCommonly used together
- Helm Chart Dependency CalculatorCommonly used together
- Helm Template Rendering CalculatorCommonly used together
- Helm Values Size CalculatorCommonly used together
- Helm Hook Execution CalculatorCommonly used together
- Helm Manifest Size CalculatorCommonly used together