[cherry-pick] PWX-37480: avoid starting extra live-migraions for the same VM (#1560) #1561
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
When deciding whether a running virt-launcher pod needs to be evicted, we now also check if the VMI is active on the same node. If VMI says that it is running on a different node and there is no live-migration in progress, we skip the eviction for that pod since the pod should go into a completed state on its own.
Also, we now call shouldEvictPod only for the virt-launcher pods on the subset of nodes due for the update in the current Reconcile() iteration to avoid invoking k8s APIs unnecessarily.
When starting live-migration, we now have an additional check to see if the live-migration succeeded for the same VM in the same upgrade cycle. If yes, we don't start an additional live-migration and generate an event instead. We were already doing this for a failed migration.
Which issue(s) this PR fixes (optional)
PWX-37480
Special notes for your reviewer: