-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Fix multifd compatibility with postcopy #15016
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @fossedihelm - I've reviewed your changes and they look great!
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
// UPGRADE PATH IS 1. daemonsets - ensures all compute nodes are updated to handle new features 2. wait for daemonsets to roll over 3. controllers - ensures control plane is ready for new features 4. wait for controllers to roll over 5. apiserver - toggles on new features. After the virt-handler has been updated, it should be able to communicate with the older virt-launcher. In kubevirt#12705 a change of the ParallelMigrationThreads migrationOption has been introduced, which causes a wrong set of the libvirt migration options. In particular, previously the ParallelMigrationThreads migrationOption was set by the virt-handler, and the virt-launcher simply checks its presence or not, and adjusts the libvirt flags and params to enable the multifd. With kubevirt#12705 this paradigm changed, demanding the logic from the handler to the launcher; IOW, the handler sets the ParallelMigrationThreads, and the launcher decides whether set or not the libvirt flags and options to enable the multifd. With same version of handler and launcher, everything is working well, but during upgrades, the launcher version is different from the handler one. This is causing the migrations to fail due to: `Postcopy is not yet compatible with multifd`. Let's avoid setting the ParallelMigrationThreads option from the virt-handler, restoring the backward compatibility. Signed-off-by: fossedihelm <[email protected]>
3270ded to
dd49b4a
Compare
|
/cherry-pick release-1.6 |
|
@xpivarc: once the present PR merges, I will cherry-pick it on top of DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
xpivarc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/approve
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: xpivarc The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/lgtm |
|
Required labels detected, running phase 2 presubmits: |
|
/retest-required |
1 similar comment
|
/retest-required |
|
@xpivarc: new pull request created: #15178 DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
What this PR does
// UPGRADE PATH IS
After the virt-handler has been updated, it should be able to communicate with the older virt-launcher.
In #12705 a change of the ParallelMigrationThreads migrationOption has been introduced, which causes a wrong set of the libvirt migration options. In particular, previously the ParallelMigrationThreads migrationOption was set by the virt-handler, and the virt-launcher simply checks its presence or not, and adjusts the libvirt flags and params to enable the multifd.
With #12705 this paradigm changed, demanding the logic from the handler to the launcher; IOW, the handler sets the ParallelMigrationThreads, and the launcher decides whether set or not the libvirt flags and options to enable the multifd.
With same version of handler and launcher, everything is working well, but during upgrades, the launcher version is different from the handler one.
This is causing the migrations to fail due to:
Postcopy is not yet compatible with multifdReferences
https://issues.redhat.com/browse/CNV-64362
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.
Release note