timeouts sub-block lets you override these provider defaults per operation (create, update, delete). Paired with ignore_changes, which prevents Pulumi from resetting attributes managed externally — passwords rotated by a secrets manager, tags applied by a cost allocation tool, scaling counts adjusted by an autoscaler — you have precise control over how Pulumi interacts with slow or partially-external resources.
What you’ll learn
- How
timeoutsoverrides provider-default operation wait times - How
ignore_changesprevents drift from triggering unwanted updates - When to combine both on the same resource
Why this matters
Timeout failures are apply-time surprises — the plan succeeds, then the apply hangs and times out. Setting explicit timeouts in your
.iac source means CI pipelines and operators see consistent, predictable behaviour rather than intermittent failures on slow resources.The source code
How it works
Timeouts are passed to the Pulumi resource options
The
timeouts sub-block compiles to Pulumi’s CustomTimeouts resource option. Each duration string ("60m", "30m") overrides the provider’s built-in default for that operation. Pulumi waits up to that duration before failing the apply.ignore_changes is passed as a resource option too
The list of attribute names in
ignore_changes compiles to Pulumi’s ignoreChanges resource option. On every subsequent apply, Pulumi reads the live state for those attributes but does not include them in the diff — changes to them are silently accepted.What ubx generates
Common mistakes
Run it
What you learned
timeouts overrides the provider default wait time per operation (create, update, delete)ignore_changes prevents Pulumi from resetting externally-managed attributes on applyBoth can appear on the same resource — they compile to independent Pulumi resource options
Next steps
Dynamic blocks
Generate repeated nested blocks from a collection
Lifecycle block
prevent_destroy and create_before_destroy
Full runnable example: github.com/ubiquex/ubx-examples/11-timeouts-and-ignore-changes

