From 9714dddcdafb118c7cdf418f369eda9e69edf2aa Mon Sep 17 00:00:00 2001 From: Jim Gauld Date: Fri, 28 Mar 2025 14:02:17 -0400 Subject: [PATCH] Update kubelet restart to use pmon-restart This updates classes that restart kubelet.service to use pmon-restart instead of systemctl restart. kubelet process recovery is intended to be managed by pmon. This removes pmon-restart workaround now that kubelet.service property is Restart=no. This updates few usages of 'systemctl restart' to use pmon-restart since that is the indended mechanism. Closes-Bug: 2104921 Depends-On: https://review.opendev.org/c/starlingx/integ/+/945883 TEST-PLAN: PASS: Fresh install on AIO-SX, AIO-DX, Standard. PASS: Verify kubelet.service has Restart=no systemctl show -p Restart kubelet.service PASS: Issue 'system kube-config-kubelet' and verify kubelet.service restarts via pmon. PASS: Manually kill kubelet process and verify kubelet.service restarts via pmon. sudo pkill -9 -f /usr/bin/kubelet PASS: Manually restart kubelet.service via pmon and verify kubelet.service restarts via pmon. sudo /usr/local/sbin/pmon-restart kubelet PASS: Manually restart kubelet.service via system and verify kubelet.service restarts via pmon. kubelet.service likely restarts twice, first by systemd, then by pmon. sudo systemctl restart kubelet.service PASS: Kubernetes upgrade from 1.29 to 1.30 Change-Id: I6faf69308d6954f4d2d6390dbe09cc1a8f1bdcca Signed-off-by: Jim Gauld --- .../modules/platform/manifests/kubernetes.pp | 23 ++++--------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/puppet-manifests/src/modules/platform/manifests/kubernetes.pp b/puppet-manifests/src/modules/platform/manifests/kubernetes.pp index 14a5b077c..18e60d4cd 100644 --- a/puppet-manifests/src/modules/platform/manifests/kubernetes.pp +++ b/puppet-manifests/src/modules/platform/manifests/kubernetes.pp @@ -1509,7 +1509,7 @@ class platform::kubernetes::master::rootca::trustbothcas::runtime } # Restart kubelet to truct both certs -> exec { 'restart_kubelet': - command => '/usr/bin/systemctl restart kubelet', + command => '/usr/local/sbin/pmon-restart kubelet', } } @@ -1540,7 +1540,7 @@ class platform::kubernetes::worker::rootca::trustbothcas::runtime } # Restart kubelet to trust both certs -> exec { 'restart_kubelet': - command => '/usr/bin/systemctl restart kubelet', + command => '/usr/local/sbin/pmon-restart kubelet', } } @@ -1619,7 +1619,7 @@ class platform::kubernetes::master::rootca::trustnewca::runtime } # Restart kubelet to trust only the new cert -> exec { 'restart_kubelet': - command => '/usr/bin/systemctl restart kubelet', + command => '/usr/local/sbin/pmon-restart kubelet', } # Remove the new cert file -> exec { 'remove_new_cert_file': @@ -1653,7 +1653,7 @@ class platform::kubernetes::worker::rootca::trustnewca::runtime } # Restart kubelet to trust only the new cert -> exec { 'restart_kubelet': - command => '/usr/bin/systemctl restart kubelet', + command => '/usr/local/sbin/pmon-restart kubelet', } } @@ -2001,21 +2001,8 @@ class platform::kubernetes::update_kubelet_config::runtime timeout => 60, } - # Temporary workaround for pmon-restart failures - # TODO(kdhokte) Replace with pmon-restart once pmon issue is fixed - # Ensure that kubelet is only managed by systemd when it is restarted - - -> exec { 'temporarily stop kubelet being monitored by pmon': - command => '/usr/local/sbin/pmon-stop kubelet', - } - -> exec { 'restart kubelet': - command => '/usr/bin/systemctl restart kubelet.service', - logoutput => true, - } - - -> exec { 'start monitoring kubelet by pmon again': - command => '/usr/local/sbin/pmon-start kubelet', + command => '/usr/local/sbin/pmon-restart kubelet', } }