<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>