Skip to content

Update proposal based on feedback #5

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

yiannistri
Copy link

@yiannistri yiannistri commented Apr 7, 2025

What this PR does / why we need it:

This PR updates the in-places updates proposal to include most (if not all) of the changes proposed against kubernetes-sigs#11029 as of now.

- Allow users to update Kubernetes clusters using pluggable External Update Extension.
- Maintain a coherent user experience for both rolling and in-place updates.
- Support External Update Extensions for both Control Plane (KCP or others) and MachineDeployment controlled machines.
- Allow in-place updates for single-node clusters without the requirement to reprovision hosts.

### Non-Goals/Future work

- To provide rollbacks in case of an in-place update failure. Failed updates need to be fixed manually by the user on the machine or by replacing the machine.
- Introduce any changes to KCP (or any other control plane provider), MachineDeployment, MachineSet, Machine APIs.
- Ammend the desired state to something that the registered updaters can cover or register additional updaters capable of handling the desired changes.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was a comment about this sentence being hard to understand, maybe we can remove it?

Copy link
Author

@yiannistri yiannistri Apr 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved it to Non-Goals/Future work section as per suggestion. As per Danil's comment below, I'll indicate this is indeed a future goal. Let me know if you still think we should remove this though.

Copy link

@Danil-Grigorev Danil-Grigorev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple of nits, otherwise LGTM.


Once all of the updaters are complete, the Machine controller will mark machine as done. If the update fails, this will be reflected in the Machine status.

From this point on, the `KCP` or `MachineDeployment` controller will take over and set the `UpToDate` condition to `True`.

Note: We might revisit which controller should set `UpToDate` during implementation, because we have to make sure there are no race conditions that can lead to reconcile failures, but apart from the ownership of this operation, the workflows described in this doc should not be impacted.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏻

@g-gaston g-gaston merged commit f96435f into g-gaston:in-place-updates-proposal Apr 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants