From bb9ebd89b809107ebc3b72a1d5db858184762895 Mon Sep 17 00:00:00 2001 From: Oyvind Albrigtsen Date: Fri, 13 Jun 2025 13:39:25 +0200 Subject: [PATCH] - fence_kubevirt: use hard poweroff Resolves: RHEL-96179 --- RHEL-96179-fence_kubevirt-force-off.patch | 23 +++++++++++++++++++++++ fence-agents.spec | 8 +++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 RHEL-96179-fence_kubevirt-force-off.patch diff --git a/RHEL-96179-fence_kubevirt-force-off.patch b/RHEL-96179-fence_kubevirt-force-off.patch new file mode 100644 index 0000000..ac2e281 --- /dev/null +++ b/RHEL-96179-fence_kubevirt-force-off.patch @@ -0,0 +1,23 @@ +From b6e05c57a73e5d9bdde7d133ba7ec43737a7c6b7 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Tue, 25 Feb 2025 16:11:32 +0100 +Subject: [PATCH] fence_kubevirt: set grace_period_seconds=0 to immediately + power off the node + +--- + agents/kubevirt/fence_kubevirt.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/agents/kubevirt/fence_kubevirt.py b/agents/kubevirt/fence_kubevirt.py +index e3817b0fb..8ba8ce8db 100755 +--- a/agents/kubevirt/fence_kubevirt.py ++++ b/agents/kubevirt/fence_kubevirt.py +@@ -108,7 +108,7 @@ def define_new_opts(): + def virtctl_vm_action(conn, action, namespace, name, apiversion): + path = '/apis/subresources.{api_version}/namespaces/{namespace}/virtualmachines/{name}/{action}' + path = path.format(api_version=apiversion, namespace=namespace, name=name, action=action) +- return conn.request('put', path, header_params={'accept': '*/*'}) ++ return conn.request('put', path, header_params={'accept': '*/*'}, body={'gracePeriod': 0} if action == 'stop' else None) + + # Main agent method + def main(): diff --git a/fence-agents.spec b/fence-agents.spec index b3cfea2..3244bf1 100644 --- a/fence-agents.spec +++ b/fence-agents.spec @@ -87,7 +87,7 @@ Name: fence-agents Summary: Set of unified programs capable of host isolation ("fencing") Version: 4.2.1 -Release: 129%{?alphatag:.%{alphatag}}%{?dist}.8 +Release: 129%{?alphatag:.%{alphatag}}%{?dist}.9 License: GPLv2+ and LGPLv2+ Group: System Environment/Base URL: https://github.com/ClusterLabs/fence-agents @@ -316,6 +316,7 @@ Patch143: RHEL-7734-fence_eps-add-fence_epsr2-for-ePowerSwitch-R2-and-newer.patc Patch144: RHEL-56840-fence_scsi-only-preempt-once-for-mpath-devices.patch Patch145: RHEL-76492-fence_azure_arm-use-azure-identity.patch Patch146: RHEL-65025-fence_ibm_powervs-add-private-endpoint-and-token-file-support.patch +Patch147: RHEL-96179-fence_kubevirt-force-off.patch ### HA support libs/utils ### # all archs @@ -551,6 +552,7 @@ BuildRequires: python3-google-api-client python3-pip python3-wheel python3-jinja %patch -p1 -P 144 %patch -p1 -P 145 %patch -p1 -P 146 +%patch -p1 -P 147 # prevent compilation of something that won't get used anyway sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac @@ -1597,6 +1599,10 @@ Fence agent for IBM z/VM over IP. %endif %changelog +* Fri Jun 13 2025 Oyvind Albrigtsen - 4.2.1-129.9 +- fence_kubevirt: use hard poweroff + Resolves: RHEL-96179 + * Fri Apr 25 2025 Oyvind Albrigtsen - 4.2.1-129.8 - fence_ibm_powervs: add private endpoint and token file support Resolves: RHEL-65025