A Reconciler to avoid crossplane keep polling the resource by adding the annotation crossplane.io/paused
.
It will pause the resource if and only if:
- The resource is Ready and Sync.
- The time since last time we pause it is not longer than
FrozenTimeDuration
. - The resource is not deleted.
It will unpause the resource if one of the flowing condition is met:
- The resource deleted.
- The resource is paused longer than
UnPausePollInterval
. - The spec is updated.
See example.go about how to use it.