Skip to content
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 an option to disable K8s version management for imported or local RKE2/K3s clusters #13069

Open
3 tasks
eva-vashkevich opened this issue Jan 11, 2025 · 2 comments
Assignees
Labels
area/clusterprovisioningv2 kind/enhancement QA/dev-automation Issues that engineers have written automation around so QA doesn't have look at this RFC Originated or linked to an RFC size/5 Size Estimate 5 status/waiting-backend
Milestone

Comments

@eva-vashkevich
Copy link
Member

eva-vashkevich commented Jan 11, 2025

RFC: Option to disable K8s version management for imported or local RKE2/K3s clusters
JIRA: SURE-7219

We want to add an option to disable Kubernetes version management for imported and local clusters to independently manage cluster version upgrades outside of Rancher.

This feature will only apply to imported and local clusters.

Feature flag

The feature flag controls if the k8s version management is enabled globally. It will be enabled by default and users can disable kubernetes version management by setting imported-cluster-version-management feature flag to false.

New fields during cluster import

TBD. We should consider if we want to add a checkbox to disable version management while importing a cluster. They can technically still do it by setting related annotation.

New fields during imported cluster edit

Whether or not k8s version management is enabled for a specific cluster will be determined by management.cattle.io/enable-version-management annotation (name is tentative)
On the cluster edit page for an imported or local RKE2/K3s cluster, the UI will determine whether the version list is editable based on the following logic:
If the annotation on the cluster object is not set:
UI will check the value of the imported-cluster-version-management feature flag
If the feature flag is true, the version list will be editable.
If the feature flag is false, the version list will be non-editable.
If the annotation on the cluster object is set:
If the field is set to true, the version list will be editable.
If the field is set to false, the version list will be non-editable.

Additionally, the UI will provide a way to toggle the annotation. It should be similar to a checkbox next to the Kubernetes version
Screenshot 2025-01-10 at 5 10 20 PM

Here is a proposed solution, but it should be discussed with UX
If the version list is editable
A checkable option, "Disable Cluster Version Management", will appear next to the Kubernetes Version option. Selecting this
option will make the version list non-editable and set the annotation to false on the cluster object.
If the version list is not editable:
A checkable option, "Enable Cluster Version Management", will appear next to the Kubernetes Version option. Selecting this
option will make the version list editable and set the annotation to true on the cluster object.

Please refer to the RFC linked in JIRA for more detail if needed.

Acceptance criteria: TBD

  • Feature flag should be present and user should be able to enable and disable it.
  • "Disable Cluster Version Management" or alternative should control the annotation and version control should be editable/uneditable accordingly
  • Version control should be editable depending on correct condition. All cases described above should be covered.
@eva-vashkevich eva-vashkevich added this to the v2.11.0 milestone Jan 11, 2025
@github-actions github-actions bot added the QA/dev-automation Issues that engineers have written automation around so QA doesn't have look at this label Jan 11, 2025
@richard-cox richard-cox added the RFC Originated or linked to an RFC label Jan 13, 2025
@gaktive gaktive added the size/5 Size Estimate 5 label Jan 14, 2025
@gaktive
Copy link
Member

gaktive commented Jan 14, 2025

We need #12720 to help unblock this work.

@eva-vashkevich
Copy link
Member Author

This issue depends on
rancher/rancher#48700 and
#9476

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/clusterprovisioningv2 kind/enhancement QA/dev-automation Issues that engineers have written automation around so QA doesn't have look at this RFC Originated or linked to an RFC size/5 Size Estimate 5 status/waiting-backend
Projects
None yet
Development

No branches or pull requests

3 participants