Helm Hook Execution Calculator
Estimate total execution time added by pre/post-install and upgrade Helm hooks.
About Helm Hook Execution Calculator
Helm hooks of the same type (e.g. all `pre-upgrade` hooks) execute in ascending `helm.sh/hook-weight` order, and Helm waits for each weighted group to complete before moving to the next — so total hook time for a given phase is the sum of each hook's duration in weight order, not the maximum. This is why chaining many sequential hooks (migrations, cache warms, smoke tests) can add up to a meaningful share of total upgrade time even when no single hook is individually slow.
Formula
totalTime = hook1Duration + hook2Duration + hook3Duration (sequential)
- t_i
- Duration of hook i in weight order (seconds)
- T
- Total hook execution time in seconds
Worked example
With the default values below, Helm Hook Execution Calculator returns Total Hook Execution Time of 25.0. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Hook 1 Durationaccepts 0–7,200 sec
- 5 sec
- Hook 2 Durationaccepts 0–7,200 sec
- 12 sec
- Hook 3 Durationaccepts 0–7,200 sec
- 8 sec
- Hooks Run Sequentially
- Yes
Results
- Total Hook Execution Time
- 25.0 sec
- Total Hook Execution Time
- 0.42 min
- Slowest Individual Hook
- 12.0 sec
Step by step
- 1Sum of hook durations (weight order)= 25.0s
- 2Execution mode= 25.0s
Assumptions and limits
- The result is derived only from the 4 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
What is hook-weight and how does it affect ordering?
`helm.sh/hook-weight` is an annotation (string-encoded integer, can be negative) that determines execution order within the same hook type — lower weights run first, and Helm waits for each to reach a successful state before starting the next.
Do hooks with different weights ever run in parallel?
No — Helm executes hooks of the same type strictly in ascending weight order, one at a time; only hooks that share the exact same weight value have no defined ordering guarantee relative to each other, though Helm still doesn't guarantee true concurrent execution of those either.
What happens if a hook fails?
By default Helm aborts the operation on hook failure (unless `helm.sh/hook-delete-policy` and error handling dictate otherwise), so a slow or failing early-weight hook blocks all subsequent hooks and the rest of the upgrade from proceeding.
