-
Notifications
You must be signed in to change notification settings - Fork 235
Description
Currently the behavior in managed dependent resource is the following:
We reconcile all the dependent resources mentioned in the @Dependent annotation in order. So calling reconcile(...) on all dependents, even if one of the fails. If one fails eventually we will throw the exception, but before all others are reconciled.
This is reasonable if the resources are independent of each other. If there is a problem with one that will be retried again (as the result of the exception , that triggers eventually a new reconciliation).
However this behavior is not so nice, if those dependent are interconnected, thus depend on each other. If one fails, and an other depends on it, the "other" will fail too. In this case a desired behavior would be not to reconcile the other.
One way to handle this in general is to give an option to the users, to have a fail fast approach. To have a feature flag to configure the controller to have fail after the first exception occurred. This is more consistent also with the implementation of the reconciler where users don't use dependent resources or use them in standalone mode. The exception is thrown and can be handled by ErrorStatusHandler.