Skip to content

Tracking issue for chained upgrades #12720

@fabriziopandini

Description

@fabriziopandini

Tracking issue for #12199

  • ✨ Implement core logic for chained upgrades #12726 (including fields in CC and refactoring the E2E tests)
    • Follow-up: Check
      • conditions in general: audit relevant parts in topology/cluster/conditions.go
      • audit logs for correctness in desired_state.go (e.g. the versions we log)
      • ensure we send the right versions in hooks
    • Follow-up: Add additional validation in Cluster/ClusterClass webhook: [help wanted] (@Karthik-K-N)
      • Cluster webhook: ClusterClass rebase: check that new ClusterClass includes .spec.topology.version (if CC has versions)
      • ClusterClass webhook: on create/update: ensure versions of all Clusters using that ClusterClass are included in ClusterClass versions (if CC has versions)
  •  Integration with Runtime Extension [help wanted] (@sivchari)
  •  New lifecycle hooks (@fabriziopandini)
  • "Testing"
    • Brainstorm about edge cases
    • Go through a few upgrade flows (desired state + upgrade plan) (either just by looking through the code or with the debugger)
  •  Misc
    • Audit TODO(chained-upgrade)
    • Ensure strict sequencing for all hooks except AfterControlPlaneInitialized (i.e. we have to wait for hook completion before continuing), Also take a look at reentrancy and see if we can improve it with a reasonable complexity trade-off (e.g. mark as pending: AfterControlPlaneUpgrade)
    • Update lifecycle hook documentation in the book
    • Sync & check against the proposal that everything was either implemented or is tracked in a follow-up issue

Next release:

  • Consider if to add more info about version(s) in status
  • Consider performance optimizations for topology controller (specifically also for lifecycle hook calls), e.g. rate-limiting
  • Follow-up: Update desired_state_test.go for new replica fields (e.g. remove unavailableReplicas)
  • Follow-up: Improve GetUpgradePlanFromClusterClassVersions algo: ✨ Implement core logic for chained upgrades #12726 (comment)

Metadata

Metadata

Assignees

Labels

area/clusterclassIssues or PRs related to clusterclasskind/featureCategorizes issue or PR as related to a new feature.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.triage/acceptedIndicates an issue or PR is ready to be actively worked on.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions