<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Hi all,</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>If anyone has application pods that run on controller nodes
currently, there are two recommendations:</p>
<ol>
<li>For pod nodeSelectors, replace any usage of
"node-role.kubernetes.io/master=" with
"node-role.kubernetes.io/control-plane=".</li>
<li>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=".</li>
</ol>
<p>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.<br>
</p>
<p>Chris Friesen</p>
<p>Containers TL<br>
</p>
</body>
</html>