Open
Description
This is a tracking issue for the implementation of in-place updates. At the moment, it only covers the work required for the initial phase of the project to reach the experimental (alpha) stage.
The design and approach are described in the in-place updates proposal.
-
Add
InPlaceUpdates
feature gate -
Introduce Runtime Hook API changes, see examples section of the proposal for details.
- Add
ExternalUpdate
runtime hook - Define API contract for
CanUpdateMachineRequest
andCanUpdateMachineResponse
- Define API contract for
UpdateMachineRequest
andUpdateMachineResponse
- Add
-
Create reference external updater (CAPD Kubeadm Updater)
- Set up the project structure
- Implement handlers for both runtime endpoints
- Implement container commands for upgrading Kubernetes components
- Provide config samples for the updater
-
Modify core controllers
-
KubeadmControlPlane controller updates
-
See these parts of the proposal for details:
-
-
MachineDeployment controller updates
-
See these parts of the proposal for details:
-
-
Machine controller modifications
-
See these parts of the proposal for details:
-
-
-
Set up E2E testing
- Implement E2E suite that uses the CAPD Kubeadm Updater
-
Create documentation
- Feature flag configuration
- New runtime hook and its API contracts
- Updater structure and logic
- Guide to implementing extensions
- Explanation of the CAPD Kubeadm Updater
- Tutorials for usage