Check your rotation schedule before deploying. Enter your RotationPolicy configuration and fleet size, and instantly see which day each node gets rotated — and whether every node makes it before its expireAfter backstop fires.
minRotationChances, cooldownAfter, or expireAfter — see the effect immediatelyThroughputBurstShortfall or ThroughputBelowArrival warnings fireexpireAfter deadline — the graceful path works.expireAfter deadline before the controller can rotate them — they fall back to Karpenter's native forceful expiration.A healthy configuration should show all green. Orange means throughput is tight but controlled. Red means the schedule needs widening.
Scope
The simulator models rotation starts and completions, including forceful fallback. It does not model failures (surge timeouts, retryBackoff, failurePause). The result is a best-case projection, not a production guarantee.
This page runs the controller's own Go code — the ageThreshold derivation, candidate-selection predicate, and start gates — compiled to WebAssembly. The simulator and the controller share one implementation and cannot drift apart (a CI check guards this).
The YAML is authoritative — it is what the simulator decodes, exactly as a cluster would. The form edits it in place.
The nodes to simulate. The generator creates a batch; you can also edit individual rows.
| Name | Created at | expireAfter | tGP |
|---|---|---|---|
These are NOT the policy estimates: the estimates are the forecast, these are what actually happens. Moving them apart is the interesting case — a policy whose C is optimistic because its estimates are too low.
A multiple of the LONGEST node lifetime (expireAfter). Not "generations": staggered createdAt, per-node overrides, window waits and cooldown all break that equivalence.
2026-02-17T00:00:00.000Z
No diagnostics.