Support dockerd in-service patching with EXAMPLE_DOCKER script

This adds the EXAMPLE_DOCKER in-service patching script.
Packaging currently for CentOS, but script itself is generic.

The docker.service has required patching, so this supports future
patching.

Closes-Bug: 1996916
Depends-On: https://review.opendev.org/c/starlingx/utilities/+/865731

Test Plan:
PASS: CentOS: Apply/remove designer in-service patch including
      EXAMPLE_DOCKER and verify docker.service restarts.

Signed-off-by: Jim Gauld <james.gauld@windriver.com>
Change-Id: I2c630eac88da030af69240a2badd11f06cbd5475
This commit is contained in:
Jim Gauld 2022-11-25 14:55:18 -05:00 committed by Eric MacDonald
parent 8e880d7764
commit 443681e209
4 changed files with 72 additions and 0 deletions

View File

@ -9,4 +9,5 @@ patch-scripts/EXAMPLE_VIM
patch-scripts/EXAMPLE_SYSINV
patch-scripts/EXAMPLE_SERVICE
patch-scripts/EXAMPLE_KUBELET
patch-scripts/EXAMPLE_DOCKER
enable-dev-patch

View File

@ -0,0 +1,27 @@
Name: EXAMPLE_DOCKER
Summary: StarlingX In-Service dockerd Patch Script Example
Version: 1.0
Release: %{tis_patch_ver}%{?_tis_dist}
License: windriver
Group: base
Packager: Wind River <info@windriver.com>
Source0: dockerd-process-restart
%install
install -Dp -m 700 %{S:0} %{buildroot}%{_patch_scripts}/%{name}
%description
%{summary}
%files
%defattr(-,root,root,-)
%{_patch_scripts}/*
%post
cp -f %{_patch_scripts}/%{name} %{_runtime_patch_scripts}/
exit 0
%preun
cp -f %{_patch_scripts}/%{name} %{_runtime_patch_scripts}/
exit 0

View File

@ -0,0 +1,2 @@
COPY_LIST="scripts/*"
TIS_PATCH_VER=PKG_GITREVCOUNT

View File

@ -0,0 +1,42 @@
#!/bin/bash
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
#
# This script provides an in-service patching restart script for
# docker.service. This supports service and Drop-In file changes by
# issuing a systemctl daemon reload after the patch is applied.
#
#
# The patching subsystem provides a patch-functions bash source file
# with useful function and variable definitions.
#
. /etc/patching/patch-functions
#
# Declare an overall script return code
#
declare -i GLOBAL_RC=$PATCH_STATUS_OK
# Issue a systemd daemon-reload once the rpms have been installed and
# before the processes have been restarted.
systemctl daemon-reload
# processes that run on all nodes
processes_to_restart="dockerd"
/usr/local/sbin/patch-restart-processes ${processes_to_restart}
if [ $? != 0 ] ; then
loginfo "patching restart failed"
loginfo "... process-restart ${processes_to_restart}"
exit ${PATCH_STATUS_FAILED}
fi
#
# Exit the script with the overall return code
#
exit $GLOBAL_RC