Pods with namespace 'kube-system', or labeled with
'app.starlingx.io/component=platform' are identified as
'platform'. These have isolated cpu affinity cpuset when
kubelet cpu-manager 'static' policy is configured. This
decouples performance of application pods from the platform.
The new patch Identify-platform-pods-based-on-pod-or-namespace-labels
patch is used to identify platform pods using above criteria for
Kubernetes 1.25 and later. The hard-coded list of platform namespaces
is no longer required. The original hard-coded list is still kept
for Kubernetes 1.24 so we can phase in this change.
This will also fix the Kubernetes make test fail issue after merging
the review https://review.opendev.org/c/starlingx/integ/+/907637
This change also include the missed out patch
kubeadm-reduce-UpgradeManifestTimeout.patch for k8s 1.29.
Test Plan:
PASS: Run all Kubelet, kubeadm, kubectl make tests for affected code.
PASS: All affected versions of kubernetes package build successfully.
PASS: Create a pod with the platform label. Pod is classified as
a platform pod.
PASS: Create a pod without the platform label but in a namespace with
the platform label. Pod is classified as a platform pod.
PASS: Create a pod without the platform label and in a namespace
without the platform label. Pod is not classified as a platform
pod.
PASS: Verify correct cpuset affinity of platform vs application pods
after host lock/unlock
PASS: Verify kube-system namespace pods are correctly identified
as Platform
Closes-Bug: 2058042
Story: 2010612
Task: 49910
Change-Id: I0cc05c2e9057b64f9191317e72a1bf4d7b8d0771
Signed-off-by: Boovan Rajendran <boovan.rajendran@windriver.com>