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 <James.Gauld@windriver.com>
This commit is contained in:
Jim Gauld 2025-03-28 14:02:17 -04:00
parent 6136175fa0
commit 9714dddcda

View File

@ -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',
}
}