Skip to content

Implement in-place update contracts #814

@alexander-demicev

Description

@alexander-demicev

This is a tracking issue (epic) for in-place updates.

In-place updates were introduced in CAPI starting with v1.11.x. Since we have now bumped to v1.12.x, we can safely begin implementing this feature. Below is a high-level checklist of what needs to be done:

  • Introduce a feature gate
    • Add a feature gate for enabling in-place updates.
  • Implement contracts (using kubeadm as a reference)
    • Use the kubeadm implementation in CAPI as the primary reference, as it is currently the best and the only example.
    • Note CAPI maintainers had to refactor parts of the Kubeadm control plane provider to make this work correctly (optimizing the rollout process, ensuring maxSurge is respected, and eliminating race conditions).
    • Be prepared for this task to grow in complexity as similar refactoring may be required.
  • Write a mock update extension for CAPRKE2
    • Implement a simple "mock" update extension for CAPRKE2.
    • Use the kubeadm CAPI extension as a reference.
  • Add E2E coverage
    • Leverage the update extensin to write e2e tests.
  • Update documentation
    • Document the new feature, configuration options, and expected behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/controllerIndicates an issue or PR related to the controllersarea/controlplaneIndicates an issue or PR related to the control plane providerkind/feature

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions