NumaflowControllerRolloutReconciler.Reconcile() can be called for various reasons - need to make sure we only do an Update if the new spec is different from the previous.
(Consider auto-healing case in which somebody has manually modified the Numaflow Controller Deployment spec on the cluster directly and we need to overwrite it. Therefore, it's not sufficient to just make a determination if the Version number in the NumaflowControllerRollout spec changed.)
Note: this issue is related to this issue, so maybe the same person should do both.
This is handled by gitops engine with WithResourceModificationChecker option during syncing. Also, note that controller definition in stored as immutable config map, so it should not change once loaded.
NumaflowControllerRolloutReconciler.Reconcile()
can be called for various reasons - need to make sure we only do an Update if the new spec is different from the previous.(Consider auto-healing case in which somebody has manually modified the Numaflow Controller Deployment spec on the cluster directly and we need to overwrite it. Therefore, it's not sufficient to just make a determination if the Version number in the
NumaflowControllerRollout
spec changed.)Note: this issue is related to this issue, so maybe the same person should do both.