From 0d3e74582e2f4681cad55a46c7c231ccaa50babd Mon Sep 17 00:00:00 2001 From: AlmaLinux RelEng Bot Date: Mon, 30 Mar 2026 10:13:15 -0400 Subject: [PATCH] import CS WALinuxAgent-2.14.0.1-4.el9 --- .WALinuxAgent.metadata | 2 +- .gitignore | 2 +- ...kManager-to-set-DHCP-hostnames-on-r.patch} | 9 +- ...002-Disable-automatic-log-collector.patch} | 7 +- ...-rule-to-avoid-managing-slave-NICs-.patch} | 12 +- ... 0004-docs-add-waagent-manpage-3401.patch} | 24 +-- ...tead-of-service-to-manager-services.patch} | 9 +- SOURCES/module-setup-udev.sh | 2 +- ...agent-network-setup.service-path-to-.patch | 153 ++++++++++++++++++ ...issues.redhat.com-browse-RHEL-133507.patch | 83 ++++++++++ ...emove-10-azure-unmanaged-sriov.rules.patch | 50 ++++++ SPECS/WALinuxAgent.spec | 42 ++++- 12 files changed, 349 insertions(+), 46 deletions(-) rename SOURCES/{wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch => 0001-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch} (92%) rename SOURCES/{wla-Disable-automatic-log-collector.patch => 0002-Disable-automatic-log-collector.patch} (90%) rename SOURCES/{wla-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch => 0003-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch} (89%) rename SOURCES/{wla-docs-add-waagent-manpage-3401.patch => 0004-docs-add-waagent-manpage-3401.patch} (91%) rename SOURCES/{wla-Use-systemctl-instead-of-service-to-manager-services.patch => 0005-Use-systemctl-instead-of-service-to-manager-services.patch} (93%) create mode 100644 SOURCES/wla-Change-redhat-waagent-network-setup.service-path-to-.patch create mode 100644 SOURCES/wla-Jira-https-issues.redhat.com-browse-RHEL-133507.patch create mode 100644 SOURCES/wla-Remove-10-azure-unmanaged-sriov.rules.patch diff --git a/.WALinuxAgent.metadata b/.WALinuxAgent.metadata index a22a314..f2e104b 100644 --- a/.WALinuxAgent.metadata +++ b/.WALinuxAgent.metadata @@ -1 +1 @@ -3511edebc20381fc108c92e41218cbfc4ed78fa8 SOURCES/v2.13.1.1.tar.gz +e8f30e34eedc9280531af1bb1af9efb53d1a1039 SOURCES/v2.14.0.1.tar.gz diff --git a/.gitignore b/.gitignore index e87e054..1166f36 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/v2.13.1.1.tar.gz +SOURCES/v2.14.0.1.tar.gz diff --git a/SOURCES/wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch b/SOURCES/0001-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch similarity index 92% rename from SOURCES/wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch rename to SOURCES/0001-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch index 16a3702..36e2e98 100644 --- a/SOURCES/wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch +++ b/SOURCES/0001-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch @@ -1,8 +1,8 @@ -From 8ac14e61d8067bd8b4e60c59b35b4a4227f8a242 Mon Sep 17 00:00:00 2001 +From ccbdd1a80e22c708a11cd518de8bad3807ae5ada Mon Sep 17 00:00:00 2001 From: Mohammed Gamal Date: Fri, 29 Jul 2022 13:07:13 +0200 -Subject: redhat: Use NetworkManager to set DHCP hostnames on recent RHEL - distros +Subject: [PATCH] redhat: Use NetworkManager to set DHCP hostnames on recent + RHEL distros RH-Author: Mohamed Gamal Morsy RH-MergeRequest: 3: redhat: Use NetworkManager to set DHCP hostnames on recent RHEL distros @@ -48,6 +48,3 @@ index a9a10347..b85b2d42 100644 + + if return_code != 0: + logger.error("failed to set DHCP hostname for interface {0}: return code {1}".format(ifname, return_code)) --- -2.39.3 - diff --git a/SOURCES/wla-Disable-automatic-log-collector.patch b/SOURCES/0002-Disable-automatic-log-collector.patch similarity index 90% rename from SOURCES/wla-Disable-automatic-log-collector.patch rename to SOURCES/0002-Disable-automatic-log-collector.patch index 60372ab..e8d9568 100644 --- a/SOURCES/wla-Disable-automatic-log-collector.patch +++ b/SOURCES/0002-Disable-automatic-log-collector.patch @@ -1,7 +1,7 @@ -From 92baa5663a0baa45e37243936221b0c1795ff324 Mon Sep 17 00:00:00 2001 +From 97b3d6b1c8051fc24e47b584a4f07a1abce9d232 Mon Sep 17 00:00:00 2001 From: Ani Sinha Date: Mon, 6 May 2024 11:50:49 +0530 -Subject: Disable automatic log collector +Subject: [PATCH] Disable automatic log collector RH-Author: Ani Sinha RH-MergeRequest: 11: Disable automatic log collector @@ -38,6 +38,3 @@ index 3c9ad5d4..62d8148e 100644 # How frequently to collect logs, default is each hour Logs.CollectPeriod=3600 --- -2.39.3 - diff --git a/SOURCES/wla-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch b/SOURCES/0003-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch similarity index 89% rename from SOURCES/wla-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch rename to SOURCES/0003-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch index 34d5bbc..06da35a 100644 --- a/SOURCES/wla-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch +++ b/SOURCES/0003-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch @@ -1,7 +1,7 @@ -From c8df88fd1fedb25727fff64ecc5dde1a59d7a976 Mon Sep 17 00:00:00 2001 +From 57d4ae44c3ce666bb1925abe4defc24e400a6454 Mon Sep 17 00:00:00 2001 From: Vitaly Kuznetsov Date: Mon, 6 Jan 2025 17:13:11 +0100 -Subject: redhat: Add a udev rule to avoid managing slave NICs with +Subject: [PATCH] redhat: Add a udev rule to avoid managing slave NICs with NetworkManager RH-Author: Vitaly Kuznetsov @@ -22,10 +22,9 @@ Patch-name: wla-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch Patch-id: Patch-present-in-specfile: True --- - .distro/WALinuxAgent.spec | 1 + config/10-azure-unmanaged-sriov.rules | 6 ++++++ setup.py | 3 ++- - 3 files changed, 9 insertions(+), 1 deletion(-) + 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 config/10-azure-unmanaged-sriov.rules diff --git a/config/10-azure-unmanaged-sriov.rules b/config/10-azure-unmanaged-sriov.rules @@ -41,7 +40,7 @@ index 00000000..7eefcb26 +# NM_UNMANAGED=1 for NetworkManager +SUBSYSTEM=="net", ACTION!="remove", DRIVERS=="mana|mlx4_core|mlx5_core", ATTR{flags}=="0x?[89ABCDEF]??", ENV{AZURE_UNMANAGED_SRIOV}="1", ENV{ID_NET_MANAGED_BY}="unmanaged", ENV{NM_UNMANAGED}="1" diff --git a/setup.py b/setup.py -index e83f5989..cf6e90b5 100755 +index ca5e2d20..6471dba3 100755 --- a/setup.py +++ b/setup.py @@ -82,7 +82,8 @@ def set_openbsd_rc_files(data_files, dest="/etc/rc.d/", src=None): @@ -54,6 +53,3 @@ index e83f5989..cf6e90b5 100755 "config/99-azure-product-uuid.rules"] data_files.append((dest, src)) --- -2.39.3 - diff --git a/SOURCES/wla-docs-add-waagent-manpage-3401.patch b/SOURCES/0004-docs-add-waagent-manpage-3401.patch similarity index 91% rename from SOURCES/wla-docs-add-waagent-manpage-3401.patch rename to SOURCES/0004-docs-add-waagent-manpage-3401.patch index 52511af..27b9ad8 100644 --- a/SOURCES/wla-docs-add-waagent-manpage-3401.patch +++ b/SOURCES/0004-docs-add-waagent-manpage-3401.patch @@ -1,4 +1,4 @@ -From 756fe22f41c0607394a9b9ba20c15677b3389a21 Mon Sep 17 00:00:00 2001 +From 5fb82a76eb6c14b2802e073c497a8c3de143375f Mon Sep 17 00:00:00 2001 From: Li Tian <94442129+litian1992@users.noreply.github.com> Date: Tue, 5 Aug 2025 03:18:10 +0800 Subject: [PATCH] docs: add waagent manpage (#3401) @@ -20,11 +20,14 @@ Signed-off-by: Li Tian Co-authored-by: maddieford <93676569+maddieford@users.noreply.github.com> (cherry picked from commit 7f9b5568b6572745b7d0776de0ff6fb70a28dba0) Signed-off-by: Li Tian + +Patch-name: wla-docs-add-waagent-manpage-3401.patch +Patch-id: +Patch-present-in-specfile: True --- - .distro/WALinuxAgent.spec | 1 + - doc/man/waagent.1 | 117 ++++++++++++++++++++++++++++++++++++++ - setup.py | 14 +++++ - 3 files changed, 132 insertions(+) + doc/man/waagent.1 | 117 ++++++++++++++++++++++++++++++++++++++++++++++ + setup.py | 14 ++++++ + 2 files changed, 131 insertions(+) create mode 100644 doc/man/waagent.1 diff --git a/doc/man/waagent.1 b/doc/man/waagent.1 @@ -151,7 +154,7 @@ index 00000000..b1d8e9eb +.SH AUTHORS +Microsoft Azure Linux Team diff --git a/setup.py b/setup.py -index cf6e90b5..9ed135fb 100755 +index 6471dba3..30784ca6 100755 --- a/setup.py +++ b/setup.py @@ -17,7 +17,9 @@ @@ -194,9 +197,6 @@ index cf6e90b5..9ed135fb 100755 set_udev_files(data_files) set_systemd_files(data_files, dest=systemd_dir_path) + set_man_files(data_files) - else: - # Use default setting - set_bin_files(data_files, dest=agent_bin_path) --- -2.50.1 - + elif name == 'chainguard': + set_bin_files(data_files, dest=agent_bin_path, src=["bin/py3/waagent"]) + set_conf_files(data_files, src=["config/chainguard/waagent.conf"]) diff --git a/SOURCES/wla-Use-systemctl-instead-of-service-to-manager-services.patch b/SOURCES/0005-Use-systemctl-instead-of-service-to-manager-services.patch similarity index 93% rename from SOURCES/wla-Use-systemctl-instead-of-service-to-manager-services.patch rename to SOURCES/0005-Use-systemctl-instead-of-service-to-manager-services.patch index 4c3ea42..301c583 100644 --- a/SOURCES/wla-Use-systemctl-instead-of-service-to-manager-services.patch +++ b/SOURCES/0005-Use-systemctl-instead-of-service-to-manager-services.patch @@ -1,4 +1,4 @@ -From 846d9f18e2ee331e35a7243f73de3bb3c18875df Mon Sep 17 00:00:00 2001 +From f08fe8708565901e1cfe453d5847095aaefb9355 Mon Sep 17 00:00:00 2001 From: Yuxin Sun Date: Fri, 27 Jun 2025 01:34:20 +0800 Subject: [PATCH] Use systemctl instead of service to manager services in new @@ -19,6 +19,10 @@ Upstream PR: https://github.com/Azure/WALinuxAgent/pull/3403 (cherry picked from commit a6cfdfdc3e04884a08cd6dd20fa035b687943fe9) Signed-off-by: Yuxin Sun + +Patch-name: wla-Use-systemctl-instead-of-service-to-manager-services.patch +Patch-id: +Patch-present-in-specfile: True --- azurelinuxagent/common/osutil/redhat.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) @@ -55,6 +59,3 @@ index b85b2d42..cf2d2f78 100644 DefaultOSUtil.publish_hostname(self, hostname) def set_dhcp_hostname(self, hostname): --- -2.50.1 - diff --git a/SOURCES/module-setup-udev.sh b/SOURCES/module-setup-udev.sh index 056b197..ed7300d 100644 --- a/SOURCES/module-setup-udev.sh +++ b/SOURCES/module-setup-udev.sh @@ -13,5 +13,5 @@ depends() { # called by dracut install() { inst_multiple cut readlink chmod - inst_rules 10-azure-unmanaged-sriov.rules 66-azure-storage.rules 99-azure-product-uuid.rules + inst_rules 66-azure-storage.rules 99-azure-product-uuid.rules } diff --git a/SOURCES/wla-Change-redhat-waagent-network-setup.service-path-to-.patch b/SOURCES/wla-Change-redhat-waagent-network-setup.service-path-to-.patch new file mode 100644 index 0000000..2d3ea27 --- /dev/null +++ b/SOURCES/wla-Change-redhat-waagent-network-setup.service-path-to-.patch @@ -0,0 +1,153 @@ +From d316428f569ddc35561c86e29e1d4b14423b239d Mon Sep 17 00:00:00 2001 +From: Yuxin Sun +Date: Fri, 8 Aug 2025 04:11:48 +0800 +Subject: [PATCH] Change redhat waagent-network-setup.service path to /etc + (#3392) + +RH-Author: yuxisun +RH-MergeRequest: 27: [c9s]Change redhat waagent-network-setup.service path to /etc (#3392) +RH-Jira: RHEL-82232 +RH-Acked-by: Vitaly Kuznetsov +RH-Acked-by: Miroslav Rezanina +RH-Commit: [1/1] a975e122bba51e666a762c4967fa4db559b7e027 (yuxisun/centos_src_WALinuxAgent) + +JIRA: https://issues.redhat.com/browse/RHEL-82232 + +In image mode, the /usr path is readonly. WALA intends to write a /usr/lib/systemd/system/waagent-network-setup.service file to setup the persistent firewall rules, which is not permitted in image mode. So we change the service file path to /etc/systemd/system/waagent-network-setup.service to resolve this issue. + +Upstream PR: https://github.com/Azure/WALinuxAgent/pull/3392 + +Signed-off-by: Yuxin Sun +Co-authored-by: Norberto Arrieta +Co-authored-by: maddieford <93676569+maddieford@users.noreply.github.com> +(cherry picked from commit 1d8e1c915b9551d8cd0587f32a80e66fe153c9da) +Signed-off-by: Yuxin Sun +--- + azurelinuxagent/common/osutil/default.py | 4 ++++ + azurelinuxagent/common/osutil/redhat.py | 12 +++++++++++ + azurelinuxagent/ga/persist_firewall_rules.py | 22 ++++++++++++++++---- + tests/ga/test_persist_firewall_rules.py | 2 +- + 4 files changed, 35 insertions(+), 5 deletions(-) + +diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py +index 9eeb0da8..a8830ff3 100644 +--- a/azurelinuxagent/common/osutil/default.py ++++ b/azurelinuxagent/common/osutil/default.py +@@ -123,6 +123,10 @@ class DefaultOSUtil(object): + def get_systemd_unit_file_install_path(): + return "/lib/systemd/system" + ++ @classmethod ++ def get_network_setup_service_install_path(cls): ++ return cls.get_systemd_unit_file_install_path() ++ + @staticmethod + def get_agent_bin_path(): + return "/usr/sbin" +diff --git a/azurelinuxagent/common/osutil/redhat.py b/azurelinuxagent/common/osutil/redhat.py +index cf2d2f78..a80fc889 100644 +--- a/azurelinuxagent/common/osutil/redhat.py ++++ b/azurelinuxagent/common/osutil/redhat.py +@@ -103,6 +103,18 @@ class RedhatOSUtil(Redhat6xOSUtil): + def get_systemd_unit_file_install_path(): + return "/usr/lib/systemd/system" + ++ @classmethod ++ def get_network_setup_service_install_path(cls): ++ """ ++ In image mode, /usr is readonly, so the ++ waagent-network-setup.service is written in /etc/systemd/system. ++ In non-image mode, the default location is /usr/lib/systemd/system. ++ """ ++ if os.path.exists('/run/ostree-booted'): ++ return "/etc/systemd/system" ++ else: ++ return cls.get_systemd_unit_file_install_path() ++ + def set_hostname(self, hostname): + """ + Unlike redhat 6.x, redhat 7.x will set hostname via hostnamectl +diff --git a/azurelinuxagent/ga/persist_firewall_rules.py b/azurelinuxagent/ga/persist_firewall_rules.py +index 1f80d272..a876de2c 100644 +--- a/azurelinuxagent/ga/persist_firewall_rules.py ++++ b/azurelinuxagent/ga/persist_firewall_rules.py +@@ -27,6 +27,7 @@ from azurelinuxagent.common.future import ustr + from azurelinuxagent.common.osutil import get_osutil, systemd + from azurelinuxagent.common.utils import shellutil, fileutil, textutil + from azurelinuxagent.common.utils.shellutil import CommandError ++from azurelinuxagent.common.version import get_distro + + + class PersistFirewallRulesHandler(object): +@@ -71,23 +72,25 @@ if __name__ == '__main__': + # modify the unit file on VM too + _UNIT_VERSION = "1.4" + ++ _DISTRO = get_distro()[0] ++ + @staticmethod + def get_service_file_path(): + osutil = get_osutil() + service_name = PersistFirewallRulesHandler._AGENT_NETWORK_SETUP_NAME_FORMAT.format(osutil.get_service_name()) +- return os.path.join(osutil.get_systemd_unit_file_install_path(), service_name) ++ return os.path.join(osutil.get_network_setup_service_install_path(), service_name) + + def __init__(self, dst_ip): + """ + This class deals with ensuring that Firewall rules are persisted over system reboots. + It tries to employ using Firewalld.service if present first as it already has provisions for persistent rules. +- If not, it then creates a new agent-network-setup.service file and copy it over to the osutil.get_systemd_unit_file_install_path() dynamically ++ If not, it then creates a new agent-network-setup.service file and copy it over to the osutil.get_network_setup_service_install_path() dynamically + On top of it, on every service restart it ensures that the WireIP is overwritten and the new IP is blocked as well. + """ + osutil = get_osutil() + self._network_setup_service_name = self._AGENT_NETWORK_SETUP_NAME_FORMAT.format(osutil.get_service_name()) + self._is_systemd = systemd.is_systemd() +- self._systemd_file_path = osutil.get_systemd_unit_file_install_path() ++ self._systemd_file_path = osutil.get_network_setup_service_install_path() + self._dst_ip = dst_ip + # The custom service will try to call the current agent executable to setup the firewall rules + self._current_agent_executable_path = os.path.join(os.getcwd(), sys.argv[0]) +@@ -118,7 +121,7 @@ if __name__ == '__main__': + def setup(self): + + if not self._is_firewall_service_running(): +- logger.info("Firewalld service not running/unavailable, trying to set up {0}".format(self._network_setup_service_name)) ++ logger.info("Firewalld service not running/unavailable, trying to set up {0}".format(self.get_service_file_path())) + if systemd.is_systemd(): + self._setup_network_setup_service() + else: +@@ -176,6 +179,17 @@ if __name__ == '__main__': + # This is to handle the case where WireIP can change midway on service restarts. + # Additionally, incase of auto-update this would also update the location of the new EGG file ensuring that + # the service is always run from the most latest agent. ++ ++ # If RHEL and in image mode, we need to clean up the service file in old path ++ if self._DISTRO == 'rhel' and os.path.exists('/run/ostree-booted'): ++ old_service_file_path = os.path.join('/usr/lib/systemd/system/', self._network_setup_service_name) ++ if os.path.exists(old_service_file_path): ++ logger.info("Cleaning up old service file in image mode: {0}".format(old_service_file_path)) ++ try: ++ fileutil.rm_files(old_service_file_path) ++ except Exception as error: ++ logger.warn("Unable to delete old service in image mode {0}: {1}".format(self._network_setup_service_name, ustr(error))) ++ + self.__setup_binary_file() + + network_service_enabled = self.__verify_network_setup_service_enabled() +diff --git a/tests/ga/test_persist_firewall_rules.py b/tests/ga/test_persist_firewall_rules.py +index 18b302f8..1f3f7e56 100644 +--- a/tests/ga/test_persist_firewall_rules.py ++++ b/tests/ga/test_persist_firewall_rules.py +@@ -76,7 +76,7 @@ class TestPersistFirewallRulesHandler(AgentTestCase): + + osutil = DefaultOSUtil() + osutil.get_agent_bin_path = MagicMock(return_value=self.__agent_bin_dir) +- osutil.get_systemd_unit_file_install_path = MagicMock(return_value=self.__systemd_dir) ++ osutil.get_network_setup_service_install_path = MagicMock(return_value=self.__systemd_dir) + + self._expected_service_name = PersistFirewallRulesHandler._AGENT_NETWORK_SETUP_NAME_FORMAT.format( + osutil.get_service_name()) +-- +2.47.3 + diff --git a/SOURCES/wla-Jira-https-issues.redhat.com-browse-RHEL-133507.patch b/SOURCES/wla-Jira-https-issues.redhat.com-browse-RHEL-133507.patch new file mode 100644 index 0000000..c60488e --- /dev/null +++ b/SOURCES/wla-Jira-https-issues.redhat.com-browse-RHEL-133507.patch @@ -0,0 +1,83 @@ +From 950482d0e2147546dbb00d064937e6375bf860d4 Mon Sep 17 00:00:00 2001 +From: Chris Patterson +Date: Thu, 1 Sep 2022 10:45:47 -0400 +Subject: [PATCH] Jira: https://issues.redhat.com/browse/RHEL-133507 + +RH-Author: yuxisun +RH-MergeRequest: 25: waagent.service: set ConditionVirtualization=|microsoft +RH-Jira: RHEL-133507 +RH-Acked-by: Vitaly Kuznetsov +RH-Acked-by: Miroslav Rezanina +RH-Commit: [1/1] 667b85d61146b144ba24baf41156ae32e301b194 (yuxisun/centos_src_WALinuxAgent) + +waagent.service: set ConditionVirtualization=|microsoft + +Only start waagent service when running under Microsoft virtualization. + +Set it as a triggering condition to make it easier for downstreams or +test setups to add another condition (i.e. run outside of hyperv). + +Signed-off-by: Chris Patterson +(cherry picked from commit d1fad5317e2dac9fc82d9c56d2d016e20db5f7a2) + +Downstream only + +Signed-off-by: Yuxin Sun +--- + bin/waagent2.0 | 1 + + init/redhat/py2/waagent.service | 1 + + init/redhat/waagent.service | 1 + + init/waagent.service | 1 + + 4 files changed, 4 insertions(+) + +diff --git a/bin/waagent2.0 b/bin/waagent2.0 +index 34732677..c84c8c40 100644 +--- a/bin/waagent2.0 ++++ b/bin/waagent2.0 +@@ -1569,6 +1569,7 @@ After=network.target + After=sshd.service + ConditionFileIsExecutable=/usr/sbin/waagent + ConditionPathExists=/etc/waagent.conf ++ConditionVirtualization=|microsoft + + [Service] + Type=simple +diff --git a/init/redhat/py2/waagent.service b/init/redhat/py2/waagent.service +index 920e0ec7..46254ec3 100644 +--- a/init/redhat/py2/waagent.service ++++ b/init/redhat/py2/waagent.service +@@ -5,6 +5,7 @@ After=network-online.target + + ConditionFileIsExecutable=/usr/sbin/waagent + ConditionPathExists=/etc/waagent.conf ++ConditionVirtualization=|microsoft + + [Service] + Type=simple +diff --git a/init/redhat/waagent.service b/init/redhat/waagent.service +index 2c6ac5d8..12d5feee 100644 +--- a/init/redhat/waagent.service ++++ b/init/redhat/waagent.service +@@ -5,6 +5,7 @@ After=network-online.target + + ConditionFileIsExecutable=/usr/sbin/waagent + ConditionPathExists=/etc/waagent.conf ++ConditionVirtualization=|microsoft + + [Service] + Type=simple +diff --git a/init/waagent.service b/init/waagent.service +index e91f1433..aa1f3203 100644 +--- a/init/waagent.service ++++ b/init/waagent.service +@@ -5,6 +5,7 @@ After=network-online.target + + ConditionFileIsExecutable=/usr/sbin/waagent + ConditionPathExists=/etc/waagent.conf ++ConditionVirtualization=|microsoft + + [Service] + Type=simple +-- +2.52.0 + diff --git a/SOURCES/wla-Remove-10-azure-unmanaged-sriov.rules.patch b/SOURCES/wla-Remove-10-azure-unmanaged-sriov.rules.patch new file mode 100644 index 0000000..b51fe26 --- /dev/null +++ b/SOURCES/wla-Remove-10-azure-unmanaged-sriov.rules.patch @@ -0,0 +1,50 @@ +From bd24da8a9ec066f354a10581eecbc8b85617adf8 Mon Sep 17 00:00:00 2001 +From: Yuxin Sun +Date: Fri, 31 Oct 2025 17:49:02 +0800 +Subject: [PATCH] Remove 10-azure-unmanaged-sriov.rules + +RH-Author: yuxisun +RH-MergeRequest: 24: Remove 10-azure-unmanaged-sriov.rules +RH-Jira: RHEL-124218 +RH-Acked-by: Vitaly Kuznetsov +RH-Acked-by: Miroslav Rezanina +RH-Commit: [1/1] 4223f72f9f68ba9182c0b05ed76209930a8071de (yuxisun/centos_src_WALinuxAgent) + +Signed-off-by: Yuxin Sun +--- + .distro/WALinuxAgent.spec | 2 +- + .distro/sources/module-setup-udev.sh | 2 +- + config/10-azure-unmanaged-sriov.rules | 6 ------ + setup.py | 3 +-- + 4 files changed, 3 insertions(+), 10 deletions(-) + delete mode 100644 config/10-azure-unmanaged-sriov.rules + +diff --git a/config/10-azure-unmanaged-sriov.rules b/config/10-azure-unmanaged-sriov.rules +deleted file mode 100644 +index 7eefcb26..00000000 +--- a/config/10-azure-unmanaged-sriov.rules ++++ /dev/null +@@ -1,6 +0,0 @@ +-# Azure VMs with accelerated networking may have MANA, mlx4, or mlx5 SR-IOV devices which are transparently bonded to a synthetic +-# hv_netvsc device. Mark devices with the IFF_SLAVE bit set as unmanaged devices: +-# AZURE_UNMANAGED_SRIOV=1 for 10-azure-unmanaged-sriov.network +-# ID_NET_MANAGED_BY=unmanaged for systemd-networkd >= 255 +-# NM_UNMANAGED=1 for NetworkManager +-SUBSYSTEM=="net", ACTION!="remove", DRIVERS=="mana|mlx4_core|mlx5_core", ATTR{flags}=="0x?[89ABCDEF]??", ENV{AZURE_UNMANAGED_SRIOV}="1", ENV{ID_NET_MANAGED_BY}="unmanaged", ENV{NM_UNMANAGED}="1" +diff --git a/setup.py b/setup.py +index 30784ca6..c8e77988 100755 +--- a/setup.py ++++ b/setup.py +@@ -84,8 +84,7 @@ def set_openbsd_rc_files(data_files, dest="/etc/rc.d/", src=None): + + def set_udev_files(data_files, dest="/etc/udev/rules.d/", src=None): + if src is None: +- src = ["config/10-azure-unmanaged-sriov.rules", +- "config/66-azure-storage.rules", ++ src = ["config/66-azure-storage.rules", + "config/99-azure-product-uuid.rules"] + data_files.append((dest, src)) + +-- +2.47.3 + diff --git a/SPECS/WALinuxAgent.spec b/SPECS/WALinuxAgent.spec index d4464c5..d0f2a8e 100644 --- a/SPECS/WALinuxAgent.spec +++ b/SPECS/WALinuxAgent.spec @@ -3,8 +3,8 @@ %global dracut_modname_cvm 97walinuxagentcvm Name: WALinuxAgent -Version: 2.13.1.1 -Release: 3%{?dist} +Version: 2.14.0.1 +Release: 4%{?dist} Summary: The Microsoft Azure Linux Agent License: ASL 2.0 @@ -14,17 +14,23 @@ Source1: module-setup-udev.sh Source2: module-setup-cvm.sh Source3: 90-tpm2-import.rules Source4: tpm2-luks-import.sh +Patch1: 0001-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch +Patch2: 0002-Disable-automatic-log-collector.patch +Patch3: 0003-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch +Patch4: 0004-docs-add-waagent-manpage-3401.patch +Patch5: 0005-Use-systemctl-instead-of-service-to-manager-services.patch +# For RHEL-124218 - [Azure][WALA][RHEL-9] Remove 10-azure-unmanaged-sriov.rules +Patch6: wla-Remove-10-azure-unmanaged-sriov.rules.patch +# For RHEL-133507 - Backport ConditionVirtualization=|microsoft for waagent in RHEL 9.x +Patch7: wla-Jira-https-issues.redhat.com-browse-RHEL-133507.patch +# For RHEL-82232 - [Azure][image mode][WALA][RHEL-9] Unable to setup the persistent firewall rules +Patch8: wla-Change-redhat-waagent-network-setup.service-path-to-.patch # For bz#2114830 - [Azure][WALA][RHEL-9.1] Provisioning failed if no ifcfg-eth0 -Patch0001: wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch # For RHEL-7273 - [Azure][WALA] Consider to disable Log collector -Patch0002: wla-Disable-automatic-log-collector.patch # For RHEL-5880 - [Azure][RHEL-9]68-azure-sriov-nm-unmanaged.rules cannot stop NetworkManager-wait-online.service checking SRIOV interface -Patch0003: wla-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch # For RHEL-109496 - [Azure][WALA][RHEL-9] Missing man page -Patch4: wla-docs-add-waagent-manpage-3401.patch # For RHEL-97572 - [Azure][RHEL-9][WALA][Image mode] Cannot find 'service' command -Patch5: wla-Use-systemctl-instead-of-service-to-manager-services.patch BuildArch: noarch @@ -41,6 +47,7 @@ Requires: openssl Requires: parted Requires: python3-pyasn1 Requires: iptables +Requires: azure-vm-utils >= 0.7.0-1 BuildRequires: systemd Requires(post): systemd @@ -142,7 +149,6 @@ rm -rf %{_unitdir}/waagent.service.d/ %{python3_sitelib}/*.egg-info %files udev -%{_udevrulesdir}/10-azure-unmanaged-sriov.rules %{_udevrulesdir}/66-azure-storage.rules %{_udevrulesdir}/99-azure-product-uuid.rules %dir %{_prefix}/lib/dracut/modules.d/%{dracut_modname_udev} @@ -160,6 +166,26 @@ rm -rf %{_unitdir}/waagent.service.d/ %endif %changelog +* Wed Jan 21 2026 Miroslav Rezanina - 2.14.0.1-4 +- wla-Change-redhat-waagent-network-setup.service-path-to-.patch [RHEL-82232] +- Resolves: RHEL-82232 + ([Azure][image mode][WALA][RHEL-9] Unable to setup the persistent firewall rules) + +* Tue Jan 06 2026 Jon Maloy - 2.14.0.1-3 +- wla-Jira-https-issues.redhat.com-browse-RHEL-133507.patch [RHEL-133507] +- Resolves: RHEL-133507 + (Backport ConditionVirtualization=|microsoft for waagent in RHEL 9.x) + +* Wed Nov 12 2025 Miroslav Rezanina - 2.14.0.1-2 +- wla-Remove-10-azure-unmanaged-sriov.rules.patch [RHEL-124218] +- Resolves: RHEL-124218 + ([Azure][WALA][RHEL-9] Remove 10-azure-unmanaged-sriov.rules) + +* Thu Oct 30 2025 Yuxin Sun - 2.14.0.1-1 +- Rebase to 2.14.0.1 [RHEL-116436] +- Resolves: RHEL-116436 + (Rebase to v2.14.0.1) + * Thu Aug 21 2025 Jon Maloy - 2.13.1.1-3 - wla-Use-systemctl-instead-of-service-to-manager-services.patch [RHEL-97572] - Resolves: RHEL-97572