Hi all,

We are in the process of adding support for Kubernetes 1.24.4 and there is a change that people need to be aware of.

In 1.20 upstream K8s added a new "node-role.kubernetes.io/control-plane=" label to identify control-plane nodes.  This is in addition to the previous "node-role.kubernetes.io/master=" label that already existed.

Until K8s 1.24 there has been a "node-role.kubernetes.io/master=" taint on the control-plane node.  In 1.24 this taint is replaced with a "node-role.kubernetes.io/control-plane=" taint.

Currently in StarlingX we have reverted this upstream K8s change to buy us time to change all of the platform code to be compatible with the new label/taint.

If anyone has application pods that run on controller nodes currently, there are two recommendations:

  1. For pod nodeSelectors, replace any usage of "node-role.kubernetes.io/master=" with "node-role.kubernetes.io/control-plane=".
  2. For pod tolerations, for any pod with a toleration of "node-role.kubernetes.io/master=", add a new toleration for "node-role.kubernetes.io/control-plane=".

The current expectation is that we will be switching to the new label/taint for the K8s 1.25 timeframe at the latest, though if things go more smoothly than expected it may be possible to complete the switch in the current release.

Chris Friesen

Containers TL