talos
talos copied to clipboard
Add option to upgrade only control-plane nodes in talosctl upgrade-k8s command
Feature Request
Add an option to the talosctl upgrade-k8s command to upgrade only the control-plane nodes, leaving worker nodes at their current version. This would allow administrators to perform successive control-plane upgrades before upgrading worker nodes only once, reducing the overall impact on the cluster and providing more flexibility in the upgrade process.
Description
Currently, the talosctl upgrade-k8s command upgrades all nodes in the cluster. However, according to the official Kubernetes version skew policy (https://kubernetes.io/releases/version-skew-policy/#kubelet), kubelet can be up to three minor versions behind the API server. This allows for a more flexible and less impactful upgrade strategy, especially for large clusters.
Proposed implementation:
Add a new flag to the upgrade-k8s command, such as --control-plane-only or -c, which when specified would limit the upgrade process to control-plane nodes only.
It would also be nice if specific machines could be individually targeted, rather than all control plane nodes or all worker nodes at the same time. This could help prevent outages should the upgrade fail, as only the selected subset of machines would be affected by a failed upgrade.
This would also be very helpful when migrating from kubeadm clusters to Talos. Targeting each nodes individually would allow to bump multiple k8s version at once.
This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days.
Bump.
This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days.
Bump.
There is the --upgrade-kubelet false flag which seems to get quite close to this as it will handle the control-plane only upgrades and leave kubelet to the user to manually upgrade.