Add kubelet service to pmond

This commit adds kubelet service to pmon. This is
required because the kubelet.conf file in /etc/pmon.d
is deleted after major upgrade due to 3-way merge.

During "ostree admin deploy" a 3-way merge happens on the
/etc directory. In this, /etc from current load, upgrade
load and a base directory (/usr/etc) are merged. Because
the file is not present in /usr/etc, its removed after 3-way
merge. It looks like all the files in /etc/pmon.d are getting
removed as there is no "pmon.d" directory in /usr/etc, but the
other files have a symlink to "/usr/share/starlingx/pmon.d",
whereas kubelet.conf file is standalone, so it doesn't get
created after 3-way merge or major upgrade.

To make sure the file is not removed on further major
upgrades, a standardised approach is being worked on
https://bugs.launchpad.net/starlingx/+bug/2100759

Test Plan:
PASS: Check kubelet.conf file present after host install lock-unlock
PASS: Check kubelet.conf file present after lock-unlock
PASS: Test on storage standard lab, major upgrade with code
      changes in custom iso
PASS: Verify with changes applied pre-bootstrap
PASS: Verify major upgrade with code fix applied on to-side

Closes-Bug: #2099960
Change-Id: I2c58f29ffc184206e491d556987a8d3ef244b515
Signed-off-by: sshathee <shunmugam.shatheesh@windriver.com>
This commit is contained in:
sshathee 2025-02-20 07:35:23 -05:00
parent 634f148735
commit 23e837bb37

View File

@ -106,6 +106,21 @@ define platform::kubernetes::pull_images_from_registry (
}
}
# Define for kubelet to be monitored by pmond
define platform::kubernetes::pmond_kubelet_file(
$custom_title = 'default', # Default title
) {
# Create the file if not present
file { '/etc/pmon.d/kubelet.conf':
ensure => file,
replace => 'no',
content => template('platform/kubelet-pmond-conf.erb'),
owner => 'root',
group => 'root',
mode => '0644',
}
}
class platform::kubernetes::configuration {
# Check to ensure that this code is not executed
@ -516,15 +531,6 @@ class platform::kubernetes::master::init
mode => '0644',
}
# set kubelet monitored by pmond
-> file { '/etc/pmon.d/kubelet.conf':
ensure => file,
content => template('platform/kubelet-pmond-conf.erb'),
owner => 'root',
group => 'root',
mode => '0644',
}
# Reload systemd
-> exec { 'perform systemctl daemon reload for kubelet override':
command => 'systemctl daemon-reload',
@ -594,8 +600,13 @@ class platform::kubernetes::master::init
command => 'systemctl --no-block try-restart kubelet.service',
logoutput => true,
}
}
# TODO(sshathee) move this to if block for stx-10 to stx-11 upgrade
# set kubelet to be monitored by pmond
platform::kubernetes::pmond_kubelet_file { 'kubelet_monitoring': }
# Run kube-cert-rotation daily
cron { 'kube-cert-rotation':
ensure => 'present',
@ -692,14 +703,8 @@ class platform::kubernetes::worker::init
mode => '0644',
}
# set kubelet monitored by pmond
-> file { '/etc/pmon.d/kubelet.conf':
ensure => file,
content => template('platform/kubelet-pmond-conf.erb'),
owner => 'root',
group => 'root',
mode => '0644',
}
# set kubelet to be monitored by pmond
platform::kubernetes::pmond_kubelet_file { 'kubelet_monitoring': }
# Reload systemd to pick up overrides
-> exec { 'perform systemctl daemon reload for kubelet override':