From 748b10d833a8d708d36361f03e06ef6547aeeeb5 Mon Sep 17 00:00:00 2001
From: David Sullivan <david.sullivan@windriver.com>
Date: Tue, 17 Sep 2019 12:36:43 -0400
Subject: [PATCH] Allow configuration of isolcpus

Allow a mixture of floating and pinned workloads by allowing the
application cpu's to be split between isolated and non-isolated

Update the kubelet cpu manager options based on the k8s_isol_cpus
parameter

Depends-On: https://review.opendev.org/682693
Change-Id: Ibc4cbbe83962bf0b0e4f9297db0cef1e75db5b74
Story: 2006565
Task: 36664
Signed-off-by: David Sullivan <david.sullivan@windriver.com>
---
 .../src/modules/platform/manifests/kubernetes.pp           | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/puppet-manifests/src/modules/platform/manifests/kubernetes.pp b/puppet-manifests/src/modules/platform/manifests/kubernetes.pp
index 2ed49b855..1b89f02b2 100644
--- a/puppet-manifests/src/modules/platform/manifests/kubernetes.pp
+++ b/puppet-manifests/src/modules/platform/manifests/kubernetes.pp
@@ -17,6 +17,7 @@ class platform::kubernetes::params (
   $k8s_nodeset = undef,
   $k8s_reserved_cpus = undef,
   $k8s_reserved_mem = undef,
+  $k8s_isol_cpus = undef,
   $apiserver_cert_san = []
 
 ) { }
@@ -105,6 +106,7 @@ class platform::kubernetes::kubeadm {
   $host_labels = $::platform::kubernetes::params::host_labels
   $k8s_reserved_cpus = $::platform::kubernetes::params::k8s_reserved_cpus
   $k8s_reserved_mem = $::platform::kubernetes::params::k8s_reserved_mem
+  $k8s_isol_cpus = $::platform::kubernetes::params::k8s_isol_cpus
 
   $iptables_file = "net.bridge.bridge-nf-call-ip6tables = 1
     net.bridge.bridge-nf-call-iptables = 1"
@@ -119,7 +121,10 @@ class platform::kubernetes::kubeadm {
       join([
         '--system-reserved=',
         "cpu=${k8s_reserved_cpus},",
-        "memory=${k8s_reserved_mem}Mi"])
+        "memory=${k8s_reserved_mem}Mi"]),
+      join([
+        '--kube-reserved=',
+        "cpu=${k8s_isol_cpus}"])
       ], ' ')
   } else {
     $k8s_cpu_manager_opts = '--cpu-manager-policy=none'