-
Notifications
You must be signed in to change notification settings - Fork 1
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
Add cluster-wide in-place upgrade proposal #55
Add cluster-wide in-place upgrade proposal #55
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.
Great work and thank you for picking this up, on some previous discussions we've discussed the need for phases/steps for upgrades where control-plane nodes and worker-nodes can be upgraded separately.
For this I believe we can utilize the CK8sControlPlane
and MachineDeployment
objects and check the annotations on these objects. This would mean creating 2 reconcilers. The phasing/step control would be left to the user as in user can choose to upgrade annotate the CK8sControlPlane
first and the MachineDeployment
s later. What do you think?
Thanks a lot for the suggestion @berkayoz! |
Yes exactly @HomayoonAlimohammadi, we would annotate those objects. We would need to update the existing controlplane reconciler and create a new |
+1 This sounds reasonable. IIRC, there also was the idea to still support annotating the |
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.
LGTM, great work!
Congrats to your first proposal.
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.
Amazing work! Thank you for picking this up.
Some points of consideration:
- We will be getting/creating a list of machines on the reconcilers, we should make sure these are ordered and we should also skip machines that have a release annotation set to our upgrade option which means the upgrade has been performed there(unless the option is local path).
- We should add events to the resources to indicate which machine is being worked on, which machine had a failed upgrade etc.
- If we are not gonna retry the operation we should also make sure to remove the
upgrade-to
annotation from the machine that failed since upgrade retries are done on the machine reconciler.
This PR adds the cluster-wide in-place upgrade proposal, a folllow-up on the original in-place upgrade proposal and should be merged after that.