+++ This bug was initially created as a clone of Bug #2112321 +++ In multiple places inside BMAC we are changing state of the CR and mark the result as `dirty: true`. This is later handled by 2 following approaches 1) reconcileComplete{dirty: true} 2) reconcileComplete{dirty: true, stop: true} Given that we should be stopping reconcile loop after every change made, in order to avoid errors like ``` Operation cannot be fulfilled on baremetalhosts.metal3.io [...]: the object has been modified; please apply your changes to the latest version and try again ``` we should only use `dirty: true` together with `stop: true`. Currently using (1) leads to some unexpected races when objects are modified (or not) multiple times in the same loop.