[PATCH] k3s: fix systemd service install


Adrian Freihofer
 

- sed was complicated and fragile
- sed runs on k3s-agent.service before it was installed
- not all paths were replaced
- "if systemd in DISTRO_FEATURES" is already handled in systemd.bbclass

Signed-off-by: Adrian Freihofer <adrian.freihofer@...>
---
recipes-containers/k3s/k3s/k3s-agent.service | 4 ++--
recipes-containers/k3s/k3s/k3s.service | 4 ++--
recipes-containers/k3s/k3s_git.bb | 12 ++++++------
3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/recipes-containers/k3s/k3s/k3s-agent.service b/recipes-containers/k3s/k3s/k3s-agent.service
index 9f9016d..eeeef2a 100644
--- a/recipes-containers/k3s/k3s/k3s-agent.service
+++ b/recipes-containers/k3s/k3s/k3s-agent.service
@@ -21,6 +21,6 @@ Restart=always
RestartSec=5s
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
-ExecStart=/usr/local/bin/k3s agent
-ExecStopPost=/usr/local/bin/k3s-clean
+ExecStart=@@BIN_PREFIX@@/bin/k3s agent
+ExecStopPost=@@BIN_PREFIX@@/bin/k3s-clean

diff --git a/recipes-containers/k3s/k3s/k3s.service b/recipes-containers/k3s/k3s/k3s.service
index 33d3ee7..b82d8ce 100644
--- a/recipes-containers/k3s/k3s/k3s.service
+++ b/recipes-containers/k3s/k3s/k3s.service
@@ -29,9 +29,9 @@ RestartSec=5s
ExecStartPre=/bin/sh -xc '! systemctl is-enabled --quiet nm-cloud-setup.service'
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
-ExecStart=/usr/local/bin/k3s server
+ExecStart=@@BIN_PREFIX@@/bin/k3s server
# Avoid any delay due to this service when the system is rebooting or shutting
# down by using the k3s-killall.sh script to kill all of the running k3s
# services and containers
ExecStopPost=/bin/sh -c "if systemctl is-system-running | grep -i \
- 'stopping'; then /usr/local/bin/k3s-killall.sh; fi"
+ 'stopping'; then @@BIN_PREFIX@@/bin/k3s-killall.sh; fi"
diff --git a/recipes-containers/k3s/k3s_git.bb b/recipes-containers/k3s/k3s_git.bb
index c9779ea..d38044c 100644
--- a/recipes-containers/k3s/k3s_git.bb
+++ b/recipes-containers/k3s/k3s_git.bb
@@ -63,12 +63,12 @@ do_install() {
install -m 755 "${WORKDIR}/k3s-clean" "${D}${BIN_PREFIX}/bin"
install -m 755 "${WORKDIR}/k3s-killall.sh" "${D}${BIN_PREFIX}/bin"

- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -D -m 0644 "${WORKDIR}/k3s.service" "${D}${systemd_system_unitdir}/k3s.service"
- install -D -m 0644 "${WORKDIR}/k3s-agent.service" "${D}${systemd_system_unitdir}/k3s-agent.service"
- sed -i "s#\(Exec\)\(.*\)=\(.*\)\(k3s\)#\1\2=${BIN_PREFIX}/bin/\4#g" "${D}${systemd_system_unitdir}/k3s.service" "${D}${systemd_system_unitdir}/k3s-agent.service"
- install -m 755 "${WORKDIR}/k3s-agent" "${D}${BIN_PREFIX}/bin"
- fi
+ install -D -m 0644 "${WORKDIR}/k3s.service" "${D}${systemd_system_unitdir}/k3s.service"
+ install -D -m 0644 "${WORKDIR}/k3s-agent.service" "${D}${systemd_system_unitdir}/k3s-agent.service"
+ install -m 755 "${WORKDIR}/k3s-agent" "${D}${BIN_PREFIX}/bin"
+ sed -i -e "s#@@BIN_PREFIX@@#${BIN_PREFIX}#g" \
+ "${D}${systemd_system_unitdir}/k3s.service" \
+ "${D}${systemd_system_unitdir}/k3s-agent.service"
}

PACKAGES =+ "${PN}-server ${PN}-agent"
--
2.31.1

Join meta-virtualization@lists.yoctoproject.org to automatically receive all group messages.