Ensures that we only ever update .status field of RolloutManager from a single location in the code
We do this by refactoring reconcile logic to return a 'reconcileStatusResult', which indicates what values to set on the status.
This allows us to avoid these 'status errors we were seeing when running E2E tests: 2024-04-10T05:51:36Z ERROR rollouts-controller unable to update status of RolloutManager {"error": "Operation cannot be fulfilled on rolloutmanagers.argoproj.io \"basic-rollouts-manager\": the object has been modified; please apply your changes to the latest version and try again"}
This PR also adds a quick Namespace-deletion test, to allow us to prevent modification to resources in a Namespace that is being deleted (which lets us avoid nasty error messages in our E2E tests related to deletion)
This allows us to avoid these errors: unable to create new content in namespace argo-rollouts because it is being terminated
Have you updated the necessary documentation?
[X] Documentation update is required by this PR, and has been updated.
Which issue(s) this PR fixes:
Fixes #?
How to test changes / Special notes to the reviewer:
What does this PR do / why we need it:
.status
field of RolloutManager from a single location in the code2024-04-10T05:51:36Z ERROR rollouts-controller unable to update status of RolloutManager {"error": "Operation cannot be fulfilled on rolloutmanagers.argoproj.io \"basic-rollouts-manager\": the object has been modified; please apply your changes to the latest version and try again"}
unable to create new content in namespace argo-rollouts because it is being terminated
Have you updated the necessary documentation?
Which issue(s) this PR fixes: Fixes #?
How to test changes / Special notes to the reviewer: