Considerations when using Simulations
Last updated: March 30, 2026
Official Documentation: https://docs.upbound.io/manuals/cli/howtos/simulations
Simulations are an alpha feature and are not meant to be more than a demo product. They are useful for understanding how configuration changes propagate through compositions and XRs, but have limitations due to providers not running and the non-deterministic nature of reconciliation.
What simulations are (currently capable of):
A dry-run mechanism that runs in a simulated control plane created by cloning the current state
Runs compositions and functions with the current inputs to show how changes propagate through the system
Produces a diff based on the state at the time the simulation is stopped
Provides a way to understand how an upgrade to a composition or XR will propagate and what the net result of those changes will be
What simulations are not (currently capable of):
Not equivalent to a Terraform dry run and cannot produce the same quality of output due to the non-deterministic nature of Crossplane reconciliation
Providers do not run in the simulated control plane
No interaction with external systems
No provider-populated status fields
Cannot compose resources that rely on the status of managed resources
Simulation completion is based on a fixed amount of time, not when reconciliation has reached a stable result
The diff reflects only what was produced at the time the simulation is stopped
Results may not reach a conclusive or stable state