From 1c5c02bc41a4f153f5c0f462ca611cff9638bb68 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Tue, 15 Jul 2025 12:54:45 +0300 Subject: [PATCH] Revert OL changes --- ...to-stop-retrying-to-get-ec2-metadata.patch | 50 ---- ...add-a-new-unit-test-for-network-mana.patch | 136 --------- cloud-init.spec | 51 +--- ignore-enslaved-interface.patch | 44 --- ...racle-Linux-variant-to-known-distros.patch | 26 -- ...30435672-003-cloud-init-collect-logs.patch | 72 ----- orabug30435672-004-ol-cloud-config.patch | 112 -------- orabug30435672-006-cc_spacewalk.py.patch | 51 ---- ...ug32183938-009-missing-sshd-services.patch | 31 -- ...issing-sshd-services-in-rhel-systemd.patch | 22 -- ...stro-detection-logic-in-cloud.cfg.tm.patch | 267 ------------------ ...SourceOracle-network-getdata-retries.patch | 115 -------- 12 files changed, 3 insertions(+), 974 deletions(-) delete mode 100644 0041-enable-ec2_utils-to-stop-retrying-to-get-ec2-metadata.patch delete mode 100644 0106-tests-unittests-add-a-new-unit-test-for-network-mana.patch delete mode 100644 ignore-enslaved-interface.patch delete mode 100644 ol-sysconfig-add-Oracle-Linux-variant-to-known-distros.patch delete mode 100644 orabug30435672-003-cloud-init-collect-logs.patch delete mode 100644 orabug30435672-004-ol-cloud-config.patch delete mode 100644 orabug30435672-006-cc_spacewalk.py.patch delete mode 100644 orabug32183938-009-missing-sshd-services.patch delete mode 100644 orabug32183938-010-missing-sshd-services-in-rhel-systemd.patch delete mode 100644 orabug34845400-Add-Oracle-to-distro-detection-logic-in-cloud.cfg.tm.patch delete mode 100644 orabug37065979-DataSourceOracle-network-getdata-retries.patch diff --git a/0041-enable-ec2_utils-to-stop-retrying-to-get-ec2-metadata.patch b/0041-enable-ec2_utils-to-stop-retrying-to-get-ec2-metadata.patch deleted file mode 100644 index d691b94..0000000 --- a/0041-enable-ec2_utils-to-stop-retrying-to-get-ec2-metadata.patch +++ /dev/null @@ -1,50 +0,0 @@ -Enable ec2_utils to stop retrying to get ec2 metadata - -Signed-off-by: David Sloboda -Reviewed-by: Laurence Rochfort - -diff -ruN a/cloudinit/sources/helpers/openstack.py b/cloudinit/sources/helpers/openstack.py ---- a/cloudinit/sources/helpers/openstack.py 2018-04-02 12:51:20.053828637 -0700 -+++ b/cloudinit/sources/helpers/openstack.py 2018-04-02 12:33:20.000000000 -0700 -@@ -464,6 +464,16 @@ - - return results - -+def should_retry_cb(_request_args, cause): -+ try: -+ code = int(cause.code) -+ if code >= 400: -+ return False -+ except (TypeError, ValueError): -+ # Older versions of requests didn't have a code. -+ pass -+ return True -+ - - class MetadataReader(BaseReader): - def __init__(self, base_url, ssl_details=None, timeout=5, retries=5): -@@ -489,16 +499,6 @@ - return self._versions - - def _path_read(self, path, decode=False): -- def should_retry_cb(_request_args, cause): -- try: -- code = int(cause.code) -- if code >= 400: -- return False -- except (TypeError, ValueError): -- # Older versions of requests didn't have a code. -- pass -- return True -- - response = url_helper.readurl( - path, - retries=self.retries, -@@ -519,6 +519,7 @@ - ssl_details=self.ssl_details, - timeout=self.timeout, - retries=self.retries, -+ exception_cb=should_retry_cb, - ) - - diff --git a/0106-tests-unittests-add-a-new-unit-test-for-network-mana.patch b/0106-tests-unittests-add-a-new-unit-test-for-network-mana.patch deleted file mode 100644 index 2248cbf..0000000 --- a/0106-tests-unittests-add-a-new-unit-test-for-network-mana.patch +++ /dev/null @@ -1,136 +0,0 @@ -From 37a6837813e418486af8cbef436ab82a8be3e3fa Mon Sep 17 00:00:00 2001 -From: Darren Archibald -Date: Fri, 23 Feb 2024 06:06:30 -0800 -Subject: [PATCH] tests/unittests: add a new unit test for network manager net - activator (#4672) - -Some changes in behavior in network manager net activator was brought in with -the commit -d1d5166895da ("net/nm: check for presence of ifcfg files when nm connection files are absent") - -This change adds some unit tests that exercizes network manager activator's -bring_up_interface() method that tests failure scenarios as well as cases -where an ifcfg file is used to bring the interface up. - -Signed-off-by: Ani Sinha -(cherry picked from commit bb474df78bfe45ea5f05907eb710e8d5de764fc8) -Signed-off-by: Darren Archibald ---- - tests/unittests/test_net_activators.py | 101 +++++++++++++++++++++++++ - 1 file changed, 101 insertions(+) - -diff --git a/tests/unittests/test_net_activators.py b/tests/unittests/test_net_activators.py -index 2a363ec..f95c8a7 100644 ---- a/tests/unittests/test_net_activators.py -+++ b/tests/unittests/test_net_activators.py -@@ -288,6 +288,107 @@ class TestActivatorsBringUp: - for call in m_subp.call_args_list: - assert call in expected_call_list - -+class TestNetworkManagerActivatorBringUp: -+ @patch("cloudinit.subp.subp", return_value=("", "")) -+ @patch( -+ "cloudinit.net.network_manager.available_nm_ifcfg_rh", -+ return_value=True, -+ ) -+ @patch("os.path.isfile") -+ @patch("os.path.exists", return_value=True) -+ def test_bring_up_interface_no_nm_conn( -+ self, m_exists, m_isfile, m_plugin, m_subp -+ ): -+ """ -+ There is no network manager connection file but ifcfg-rh plugin is -+ present and ifcfg interface config files are also present. In this -+ case, we should use ifcfg files. -+ """ -+ -+ def fake_isfile_no_nmconn(filename): -+ return False if filename.endswith(".nmconnection") else True -+ -+ m_isfile.side_effect = fake_isfile_no_nmconn -+ -+ expected_call_list = [ -+ ( -+ ( -+ [ -+ "nmcli", -+ "connection", -+ "load", -+ "".join( -+ [ -+ "/etc/sysconfig/network-scripts/ifcfg-eth0", -+ ] -+ ), -+ ], -+ ), -+ {}, -+ ), -+ ( -+ ( -+ [ -+ "nmcli", -+ "connection", -+ "up", -+ "filename", -+ "".join( -+ [ -+ "/etc/sysconfig/network-scripts/ifcfg-eth0", -+ ] -+ ), -+ ], -+ ), -+ {}, -+ ), -+ ] -+ -+ index = 0 -+ assert NetworkManagerActivator.bring_up_interface("eth0") -+ for call in m_subp.call_args_list: -+ assert call == expected_call_list[index] -+ index += 1 -+ -+ @patch("cloudinit.subp.subp", return_value=("", "")) -+ @patch( -+ "cloudinit.net.network_manager.available_nm_ifcfg_rh", -+ return_value=False, -+ ) -+ @patch("os.path.isfile") -+ @patch("os.path.exists", return_value=True) -+ def test_bring_up_interface_no_plugin_no_nm_conn( -+ self, m_exists, m_isfile, m_plugin, m_subp -+ ): -+ """ -+ The ifcfg-rh plugin is absent and nmconnection file is also -+ not present. In this case, we can't use ifcfg file and the -+ interface bring up should fail. -+ """ -+ -+ def fake_isfile_no_nmconn(filename): -+ return False if filename.endswith(".nmconnection") else True -+ -+ m_isfile.side_effect = fake_isfile_no_nmconn -+ assert not NetworkManagerActivator.bring_up_interface("eth0") -+ -+ @patch("cloudinit.subp.subp", return_value=("", "")) -+ @patch( -+ "cloudinit.net.network_manager.available_nm_ifcfg_rh", -+ return_value=True, -+ ) -+ @patch("os.path.isfile", return_value=False) -+ @patch("os.path.exists", return_value=True) -+ def test_bring_up_interface_no_conn_file( -+ self, m_exists, m_isfile, m_plugin, m_subp -+ ): -+ """ -+ Neither network manager connection files are present nor -+ ifcfg files are present. Even if ifcfg-rh plugin is present, -+ we can not bring up the interface. So bring_up_interface() -+ should fail. -+ """ -+ assert not NetworkManagerActivator.bring_up_interface("eth0") - - IF_UP_DOWN_BRING_DOWN_CALL_LIST: list = [ - ((["ifdown", "eth0"],), {}), --- -2.31.1 - diff --git a/cloud-init.spec b/cloud-init.spec index d6cce6e..a934f7b 100644 --- a/cloud-init.spec +++ b/cloud-init.spec @@ -6,7 +6,7 @@ Name: cloud-init Version: 24.4 -Release: 3.0.1%{?dist}.2 +Release: 3%{?dist}.2 Summary: Cloud instance init scripts License: Apache-2.0 OR GPL-3.0-only URL: https://github.com/canonical/cloud-init @@ -27,24 +27,9 @@ Patch9: ci-net-sysconfig-do-not-remove-all-existing-settings-of.patch # For RHEL-81896 - DataSourceNoCloudNet network configuration is ineffective [rhel-10] Patch10: ci-fix-NM-reload-and-bring-up-individual-network-conns-.patch # For RHEL-100617 - CVE-2024-6174 cloud-init: From CVEorg collector [rhel-10.1] -Patch12: ci-fix-Don-t-attempt-to-identify-non-x86-OpenStack-inst.patch +Patch11: ci-fix-Don-t-attempt-to-identify-non-x86-OpenStack-inst.patch # For RHEL-100617 - CVE-2024-6174 cloud-init: From CVEorg collector [rhel-10.1] -Patch13: ci-fix-strict-disable-in-ds-identify-on-no-datasources-.patch - -# Oracle patches -Patch100: 0041-enable-ec2_utils-to-stop-retrying-to-get-ec2-metadata.patch -Patch101: ignore-enslaved-interface.patch -Patch102: ol-sysconfig-add-Oracle-Linux-variant-to-known-distros.patch -Patch103: 0106-tests-unittests-add-a-new-unit-test-for-network-mana.patch - -# Oracle specific patches (preferred prefix: "ol" or "orabugNNNNNNNN") -Patch1001: orabug30435672-003-cloud-init-collect-logs.patch -Patch1002: orabug30435672-004-ol-cloud-config.patch -Patch1003: orabug30435672-006-cc_spacewalk.py.patch -Patch1005: orabug32183938-009-missing-sshd-services.patch -Patch1006: orabug32183938-010-missing-sshd-services-in-rhel-systemd.patch -Patch1007: orabug34845400-Add-Oracle-to-distro-detection-logic-in-cloud.cfg.tm.patch -Patch1008: orabug37065979-DataSourceOracle-network-getdata-retries.patch +Patch12: ci-fix-strict-disable-in-ds-identify-on-no-datasources-.patch BuildArch: noarch @@ -192,18 +177,6 @@ elif [ $1 -eq 2 ]; then # there will be stale systemd config /bin/systemctl is-enabled cloud-config.service >/dev/null 2>&1 && /bin/systemctl reenable cloud-config.service >/dev/null 2>&1 || : - - /bin/systemctl is-enabled cloud-final.service >/dev/null 2>&1 && - /bin/systemctl reenable cloud-final.service >/dev/null 2>&1 || : - - /bin/systemctl is-enabled cloud-init.service >/dev/null 2>&1 && - /bin/systemctl reenable cloud-init.service >/dev/null 2>&1 || : - - /bin/systemctl is-enabled cloud-init-local.service >/dev/null 2>&1 && - /bin/systemctl reenable cloud-init-local.service >/dev/null 2>&1 || : - - /bin/systemctl is-enabled cloud-init.target >/dev/null 2>&1 && - /bin/systemctl reenable cloud-init.target >/dev/null 2>&1 || : fi %preun %systemd_preun cloud-config.service cloud-config.target cloud-final.service cloud-init.service cloud-init.target cloud-init-local.service @@ -262,23 +235,6 @@ fi %changelog -* Mon Jul 14 2025 Craig Guiller - 24.4-3.0.1.2 -- NetworkManagerActivator brings up interface failed when using sysconfig renderer [RHEL-18981] -- Include module cc_write_files_deferred in config template [Orabug: 36959464] -- Fix Oracle Datasource network, getdata methods and increase retries [Orabug: 37065979] -- Fix log file permission [Orabug: 35302969] -- Update detection logic for OL distros in config template [Orabug: 34845400] -- Added missing services in rhel/systemd/cloud-init.service [Orabug: 32183938] -- Added missing services in cloud-init.service.tmpl for sshd [Orabug: 32183938] -- Forward port applicable cloud-init 18.4-2.0.3 changes to cloud-init-18-5 [Orabug: 30435672] -- limit permissions [Orabug: 31352433] -- Changes to ignore all enslaved interfaces [Orabug: 30092148] -- add modified version of enable-ec2_utils-to-stop-retrying-to-get-ec2-metadata.patch: - 1. Enable ec2_utils.py having a way to stop retrying to get ec2 metadata - 2. Apply stop retrying to get ec2 metadata to helper/openstack.py MetadataReader - Resolves: Oracle-Bug:41660 (Bugzilla) -- added OL to list of known distros - * Mon Jul 14 2025 Craig Guiller - 24.4-3.2 - ci-fix-Don-t-attempt-to-identify-non-x86-OpenStack-inst.patch [RHEL-100617] - ci-fix-strict-disable-in-ds-identify-on-no-datasources-.patch [RHEL-100617] @@ -532,4 +488,3 @@ fi * Wed Feb 16 2022 Charalampos Stratakis - 21.3-6 - Remove redundant dependencies on nose and mock - diff --git a/ignore-enslaved-interface.patch b/ignore-enslaved-interface.patch deleted file mode 100644 index cfefbe4..0000000 --- a/ignore-enslaved-interface.patch +++ /dev/null @@ -1,44 +0,0 @@ -From e7aba0f0ccd6f023667f41385f25044a94428ed3 Mon Sep 17 00:00:00 2001 -From: Darren Archibald -Date: Fri, 23 Feb 2024 05:56:06 -0800 -Subject: [PATCH] ignore enslaved interface - - Changes to ignore all enslaved interfaces. - https://jira.oci.oraclecorp.com/browse/LINUX-1947 - - Orabug: 30092148 - - Signed-off-by: Si-Wei Liu - Signed-off-by: Darren Archibald ---- - cloudinit/net/__init__.py | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/cloudinit/net/__init__.py b/cloudinit/net/__init__.py -index c0888f5..b093796 100644 ---- a/cloudinit/net/__init__.py -+++ b/cloudinit/net/__init__.py -@@ -335,6 +335,10 @@ def is_netfail_standby(devname, driver=None): - return True - - -+def is_slave(devname): -+ return os.path.exists(sys_dev_path(devname, "master")) -+ -+ - def is_renamed(devname): - """ - /* interface name assignment types (sysfs name_assign_type attribute) */ -@@ -1054,6 +1058,9 @@ def get_interfaces( - if is_bridge(name): - filtered_logger("Ignoring bridge interface: %s", name) - continue -+ if is_slave(name): -+ filtered_logger("Ignoring bridge interface: %s", name) -+ continue - if filter_vlan and is_vlan(name): - continue - if is_bond(name): --- -2.31.1 - diff --git a/ol-sysconfig-add-Oracle-Linux-variant-to-known-distros.patch b/ol-sysconfig-add-Oracle-Linux-variant-to-known-distros.patch deleted file mode 100644 index c8b89d8..0000000 --- a/ol-sysconfig-add-Oracle-Linux-variant-to-known-distros.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 8735577c8a683407e94abed0cfccc3aacbb9aa47 Mon Sep 17 00:00:00 2001 -From: Si-Wei Liu -Date: Wed, 10 Jun 2020 20:59:29 -0400 -Subject: [PATCH] sysconfig: add Oracle Linux variant to known distros - -otherwise anything sysconfig breaks on Oracle Linux. - -JIRA: https://jira.oci.oraclecorp.com/browse/LINUX-6128 - -Signed-off-by: Si-Wei Liu ---- - cloudinit/net/sysconfig.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py -index e94590f..55b7db5 100644 ---- a/cloudinit/net/sysconfig.py -+++ b/cloudinit/net/sysconfig.py -@@ -35,6 +35,7 @@ - "suse", - "TencentOS", - "virtuozzo", -+ "ol", - ] - - diff --git a/orabug30435672-003-cloud-init-collect-logs.patch b/orabug30435672-003-cloud-init-collect-logs.patch deleted file mode 100644 index 4a82f7e..0000000 --- a/orabug30435672-003-cloud-init-collect-logs.patch +++ /dev/null @@ -1,72 +0,0 @@ -From c6d9e755b6233e98764678bb86a1bc45df168df2 Mon Sep 17 00:00:00 2001 -From: Darren Archibald -Date: Thu, 29 Aug 2024 04:00:14 -0700 -Subject: [PATCH] Update cloud-init collect-logs for Oracle Linux - -Updating the code to collect triage logs with OL distro specic methods. - -Orabug: 30435672 - -Signed-off-by: Vijay Balakrishna -Reviewed-by: Si-Wei Liu -Acked-by: Joe Kennedy -Reviewed-by: Laurence Rochfort -Signed-off-by: Rajesh Harekal - -diff -urN a/cloudinit/cmd/devel/logs.py b/cloudinit/cmd/devel/logs.py ---- a/cloudinit/cmd/devel/logs.py 2025-01-27 15:12:24.357097951 -0800 -+++ b/cloudinit/cmd/devel/logs.py 2025-01-27 15:50:44.097173379 -0800 -@@ -21,7 +21,7 @@ - from cloudinit.stages import Init - from cloudinit.subp import ProcessExecutionError, subp - from cloudinit.temp_utils import tempdir --from cloudinit.util import copy, get_config_logfiles, write_file -+from cloudinit.util import copy, get_config_logfiles, write_file, system_info - - LOG = cast(loggers.CustomLoggerType, logging.getLogger(__name__)) - -@@ -214,13 +214,23 @@ - file_path=log_dir / "version", - msg="cloud-init --version", - ) -- dpkg_ver = _write_command_output_to_file( -- cmd=["dpkg-query", "--show", "-f=${Version}\n", "cloud-init"], -- file_path=log_dir / "dpkg-version", -- msg="dpkg version", -- ) -- if not version: -- version = dpkg_ver or "not-available" -+ if system_info()['variant'] == "ol": -+ rpm_ver = _write_command_output_to_file( -+ cmd=["rpm", "-q", "--queryformat", -+ "[%{VERSION}-%{RELEASE}.%{ARCH}]\n", "cloud-init"], -+ file_path=log_dir / "rpm-version", -+ msg="rpm version", -+ ) -+ if not version: -+ version = rpm_ver if rpm_ver else "not-available" -+ else: -+ dpkg_ver = _write_command_output_to_file( -+ cmd=["dpkg-query", "--show", "-f=${Version}\n", "cloud-init"], -+ file_path=log_dir / "dpkg-version", -+ msg="dpkg version", -+ ) -+ if not version: -+ version = dpkg_ver if dpkg_ver else "not-available" - - - def _collect_system_logs( - -diff -urN a/cloudinit/util.py b/cloudinit/util.py ---- a/cloudinit/util.py 2025-01-27 16:02:32.019230892 -0800 -+++ b/cloudinit/util.py 2025-01-27 16:03:05.491012873 -0800 -@@ -629,6 +629,7 @@ - "suse", - "tencentos", - "virtuozzo", -+ "ol", - ): - variant = linux_dist - elif linux_dist in ("ubuntu", "linuxmint", "mint"): - diff --git a/orabug30435672-004-ol-cloud-config.patch b/orabug30435672-004-ol-cloud-config.patch deleted file mode 100644 index 5958b77..0000000 --- a/orabug30435672-004-ol-cloud-config.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 250aa45f74e29b95f81b24811c972369605bd24e Mon Sep 17 00:00:00 2001 -From: Vijay Balakrishna -Date: Tue, 5 Nov 2019 16:00:21 -0500 -Subject: [PATCH] Add static cloud.cfg file for OL7. - -Adding OL specific cloud.cfg file to enable updates cloud-init -config file independently, adding newly verified ntp module. - -Orabug: 30435672 - -Signed-off-by: Vijay Balakrishna -Signed-off-by: Si-Wei Liu -Acked-by: Joe Kennedy -Reviewed-by: Laurence Rochfort - ---- - ol/README.ol | 6 ++++++ - ol/cloud.cfg | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 75 insertions(+) - create mode 100644 ol/README.ol - create mode 100644 ol/cloud.cfg - -diff --git a/ol/README.ol b/ol/README.ol -new file mode 100644 -index 0000000..f59d559 ---- /dev/null -+++ b/ol/README.ol -@@ -0,0 +1,6 @@ -+The following cloud-init modules are currently unsupported on this OS: -+ - apt_update_upgrade ('apt_update', 'apt_upgrade', 'apt_mirror', 'apt_preserve_sources_list', 'apt_old_mirror', 'apt_sources', 'debconf_selections', 'packages' options) -+ - byobu ('byobu_by_default' option) -+ - chef -+ - grub_dpkg -+ - rh_subscription -diff --git a/ol/cloud.cfg b/ol/cloud.cfg -new file mode 100644 -index 0000000..2ee1fb3 ---- /dev/null -+++ b/ol/cloud.cfg -@@ -0,0 +1,69 @@ -+users: -+ - default -+ -+disable_root: 1 -+ssh_pwauth: 0 -+ -+mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2'] -+resize_rootfs_tmp: /dev -+ssh_deletekeys: 0 -+ssh_genkeytypes: ~ -+syslog_fix_perms: ~ -+disable_vmware_customization: false -+ -+cloud_init_modules: -+ - disk_setup -+ - migrator -+ - bootcmd -+ - write-files -+ - growpart -+ - resizefs -+ - set_hostname -+ - update_hostname -+ - update_etc_hosts -+ - rsyslog -+ - users-groups -+ - ssh -+ -+cloud_config_modules: -+ - mounts -+ - locale -+ - set-passwords -+ - ntp -+ - yum-add-repo -+ - package-update-upgrade-install -+ - timezone -+ - puppet -+ - chef -+ - salt-minion -+ - mcollective -+ - disable-ec2-metadata -+ - runcmd -+ -+cloud_final_modules: -+ - rightscale_userdata -+ - scripts-per-once -+ - scripts-per-boot -+ - scripts-per-instance -+ - scripts-user -+ - ssh-authkey-fingerprints -+ - keys-to-console -+ - phone-home -+ - final-message -+ - power-state-change -+ -+system_info: -+ default_user: -+ name: cloud-user -+ lock_passwd: true -+ gecos: Cloud User -+ groups: [adm, systemd-journal] -+ sudo: ["ALL=(ALL) NOPASSWD:ALL"] -+ shell: /bin/bash -+ distro: rhel -+ paths: -+ cloud_dir: /var/lib/cloud -+ templates_dir: /etc/cloud/templates -+ ssh_svcname: sshd -+ -+# vim:syntax=yaml --- -1.8.3.1 - diff --git a/orabug30435672-006-cc_spacewalk.py.patch b/orabug30435672-006-cc_spacewalk.py.patch deleted file mode 100644 index 0130c01..0000000 --- a/orabug30435672-006-cc_spacewalk.py.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 2b92e042bb8a4510abec38fcfc302d8de1e28f37 Mon Sep 17 00:00:00 2001 -From: Darren Archibald -Date: Fri, 23 Feb 2024 06:55:32 -0800 -Subject: [PATCH] spacewalk: fix CA cert file path for Oracle Linux - -Update the CA cert file that is available in Oracle Linux to register with ULN. - -Orabug: 30435672 - -Signed-off-by: Si-Wei Liu -Signed-off-by: Vijay Balakrishna -Acked-by: Joe Kennedy -Reviewed-by: Laurence Rochfort -Signed-off-by: Darren Archibald -Signed-off-by: Rajesh Harekal - -diff -urN a/cloudinit/config/cc_spacewalk.py b/cloudinit/config/cc_spacewalk.py ---- a/cloudinit/config/cc_spacewalk.py 2025-01-28 10:51:15.364254013 -0800 -+++ b/cloudinit/config/cc_spacewalk.py 2025-01-28 10:53:56.899893366 -0800 -@@ -3,7 +3,7 @@ - - import logging - --from cloudinit import subp -+from cloudinit import subp, util - from cloudinit.cloud import Cloud - from cloudinit.config import Config - from cloudinit.config.schema import MetaSchema -@@ -21,6 +21,7 @@ - distros = ["redhat", "fedora", "openeuler"] - required_packages = ["rhn-setup"] - def_ca_cert_path = "/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT" -+ol_ca_cert_path = "/usr/share/rhn/ULN-CA-CERT" - - - def is_registered(): -@@ -74,9 +75,14 @@ - # Need to have this installed before further things will work. - cloud.distro.install_packages(required_packages) - if not is_registered(): -+ if util.system_info()['variant'] == "ol": -+ cert = ol_ca_cert_path -+ else: -+ cert = def_ca_cert_path - do_register( - spacewalk_server, - cloud.datasource.get_hostname(fqdn=True).hostname, -+ ca_cert_path=cert, - proxy=cfg.get("proxy"), - activation_key=cfg.get("activation_key"), - ) diff --git a/orabug32183938-009-missing-sshd-services.patch b/orabug32183938-009-missing-sshd-services.patch deleted file mode 100644 index fc78fa2..0000000 --- a/orabug32183938-009-missing-sshd-services.patch +++ /dev/null @@ -1,31 +0,0 @@ -cloud-init service file is missing sshd required services -Orabug: 32183938 - -in the systemd sshd-keygen.target file, the following services are listed: -[Unit] -Wants=sshd-keygen@rsa.service -Wants=sshd-keygen@ecdsa.service -Wants=sshd-keygen@ed25519.service - -Need to add the following to the cloud-init service file: -Before=sshd-keygen@rsa.service -Before=sshd-keygen@ecdsa.service -Before=sshd-keygen@ed25519.service - -Signed-off-by: Isaac Chen -Signed-off-by: Rajesh Harekal - -diff -urN cloud-init-24.4/systemd/cloud-init.service.tmpl.orig cloud-init-24.4/systemd/cloud-init.service.tmpl ---- cloud-init-24.4/systemd/cloud-init.service.tmpl 2025-01-28 11:13:57.339346352 -0800 -+++ cloud-init-24.4/systemd/cloud-init.service.tmpl 2025-01-28 11:14:31.587669418 -0800 -@@ -28,7 +28,9 @@ - After=dbus.service - {% endif %} - Before=network-online.target --Before=sshd-keygen.service -+Before=sshd-keygen@rsa.service -+Before=sshd-keygen@ecdsa.service -+Before=sshd-keygen@ed25519.service - Before=sshd.service - Before=systemd-user-sessions.service - {% if variant in ["ubuntu", "unknown", "debian"] %} diff --git a/orabug32183938-010-missing-sshd-services-in-rhel-systemd.patch b/orabug32183938-010-missing-sshd-services-in-rhel-systemd.patch deleted file mode 100644 index 7cb4fb0..0000000 --- a/orabug32183938-010-missing-sshd-services-in-rhel-systemd.patch +++ /dev/null @@ -1,22 +0,0 @@ -cloud-init service file is missing sshd required services -Orabug: 32183938 - -This patch is the supplement of patch orabug32183938-009, where changes -to cloud-init.service also need to be added to files in rhel/systemd. - -Signed-off-by: Isaac Chen - -diff -up cloud-init-19.4/systemd/cloud-init.service.tmpl.orig cloud-init-19.4/systemd/cloud-init.service.tmpl ---- cloud-init-19.4/systemd/cloud-init.service.tmpl.orig 2020-12-11 19:59:37.331277979 -0800 -+++ cloud-init-19.4/systemd/cloud-init.service.tmpl 2020-12-11 20:00:38.867459043 -0800 -@@ -5,7 +5,9 @@ - DefaultDependencies=no - {% endif %} - Wants=cloud-init-local.service --Wants=sshd-keygen.service -+Wants=sshd-keygen@rsa.service -+Wants=sshd-keygen@ecdsa.service -+Wants=sshd-keygen@ed25519.service - Wants=sshd.service - After=cloud-init-local.service - After=systemd-networkd-wait-online.service diff --git a/orabug34845400-Add-Oracle-to-distro-detection-logic-in-cloud.cfg.tm.patch b/orabug34845400-Add-Oracle-to-distro-detection-logic-in-cloud.cfg.tm.patch deleted file mode 100644 index 9909a4b..0000000 --- a/orabug34845400-Add-Oracle-to-distro-detection-logic-in-cloud.cfg.tm.patch +++ /dev/null @@ -1,267 +0,0 @@ -From 1042542db662f362fc74469e1c24df4eb08bf346 Mon Sep 17 00:00:00 2001 -From: Darren Archibald -Date: Thu, 29 Aug 2024 04:26:17 -0700 -Subject: [PATCH] Add Oracle to distro detection logic in cloud.cfg.tmpl - -Oracle Linux is being detected as "ol" variant by cloud-init. -This patch adds "ol" to the list of supported variants, and applies needed settings to it. -You can notice that variant "ol" is being set as distro "rhel" in a couple of places, -that is expected as this designated that base distro for "ol" is "rhel" ( which is true ) - -The main reason for this change is that cloud-init package dropped hardcoded configs that set OL as rhel -and to make cloud-init behave on OL systems as expected we need to add "ol" designation to supported list. - -Orabug: 34845400 -Signed-off-by: Alex Burmashev -Signed-off-by: Darren Archibald ---- - cloudinit/distros/__init__.py | 1 + - cloudinit/sources/DataSourceRbxCloud.py | 2 +- - config/cloud.cfg.tmpl | 43 +++++++++++++++++-------- - systemd/cloud-final.service | 4 ++- - systemd/cloud-init-local.service.tmpl | 12 ++++--- - systemd/cloud-init.service.tmpl | 8 +++-- - systemd/cloud-init-generator.tmpl | 1 +++-- - tests/unittests/test_util.py | 1 + - 7 files changed, 50 insertions(+), 21 deletions(-) - -diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py -index 9c4d6b2..47629c6 100644 ---- a/cloudinit/distros/__init__.py -+++ b/cloudinit/distros/__init__.py -@@ -79,6 +79,7 @@ OSFAMILIES = { - "rhel", - "rocky", - "virtuozzo", -+ "ol", - ], - "suse": [ - "opensuse", -diff --git a/cloudinit/sources/DataSourceRbxCloud.py b/cloudinit/sources/DataSourceRbxCloud.py -index 6729e84..2265ddb 100644 ---- a/cloudinit/sources/DataSourceRbxCloud.py -+++ b/cloudinit/sources/DataSourceRbxCloud.py -@@ -60,7 +60,7 @@ def _sub_arp(cmd): - - def gratuitous_arp(items, distro): - source_param = "-S" -- if distro.name in ["fedora", "centos", "rhel"]: -+ if distro.name in ["fedora", "centos", "rhel", "ol"]: - source_param = "-s" - for item in items: - try: -diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl -index a470120..f440830 100644 ---- a/config/cloud.cfg.tmpl -+++ b/config/cloud.cfg.tmpl -@@ -59,10 +59,10 @@ - {% endif %} - - {%- if variant in ["alpine", "amazon", "fedora", "OpenCloudOS", "openeuler", -- "openmandriva", "photon", "TencentOS"] or is_rhel %} -+ "openmandriva", "photon", "TencentOS", "ol"] or is_rhel %} - --{% if is_rhel %} --mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.after=cloud-init-network.service,_netdev', '0', '2'] -+{% if variant in ["ol"] or is_rhel %} -+mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.after=cloud-init.service,_netdev', '0', '2'] - {% else %} - mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2'] - {% endif %} -@@ -166,18 +166,20 @@ - - ubuntu_pro - {% endif %} - {% elif variant in ["azurelinux", "fedora", "mariner", "openeuler", -- "openmandriva", "photon"] or is_rhel %} -+ "openmandriva", "photon", "ol"] or is_rhel %} - {% if is_rhel %} - - rh_subscription - {% endif %} --{% if variant not in ["azurelinux", "mariner", "photon"] %} -+{% if variant not in ["azurelinux", "mariner", "photon", "ol"] %} - - spacewalk - {% endif %} - - yum_add_repo - {% elif variant == "suse" %} - - zypper_add_repo - {% endif %} -+{% if variant not in ["ol"] %} - - ntp -+{% endif %} - - timezone - {% if variant not in ["azurelinux"] %} - - disable_ec2_metadata -@@ -207,6 +209,8 @@ - {% if variant not in ["azurelinux"] %} - - mcollective - - salt_minion -+{% endif %} -+{% if variant not in ["azurelinux", "ol"] %} - - reset_rmc - {% endif %} - - scripts_vendor -@@ -230,6 +234,8 @@ - "OpenCloudOS", "openeuler", "openmandriva", "photon", "suse", - "TencentOS", "ubuntu"] or is_rhel %} - distro: {{ variant }} -+{% elif variant == "ol" %} -+ distro: rhel - {% elif variant == "dragonfly" %} - distro: dragonflybsd - {% else %} -@@ -238,7 +244,9 @@ - {% endif %} - # Default user name + that default users groups (if added/used) - default_user: --{% if variant in usernames %} -+{% if variant == "ol" %} -+ name: cloud-user -+{% elif variant in usernames %} - name: {{ usernames[variant] }} - {% else %} - name: {{ variant }} -@@ -246,11 +254,13 @@ - {% if variant in ["alpine", "amazon", "aosc", "arch", "azurelinux", "debian", "fedora", - "gentoo", "mariner", "OpenCloudOS", "openeuler", - "openmandriva", "photon", "suse", "TencentOS", "ubuntu", -- "unknown"] -+ "unknown", "ol"] - or is_bsd or is_rhel %} - lock_passwd: True - {% endif %} --{% if variant in gecos %} -+{% if variant == "ol" %} -+ gecos: Cloud User -+{% elif variant in gecos %} - gecos: {{ gecos[variant] }} - {% else %} - gecos: {{ variant }} Cloud User -@@ -328,7 +338,7 @@ - {% if variant in ["alpine", "amazon", "aosc", "arch", "azurelinux", "debian", "fedora", - "gentoo", "mariner", "OpenCloudOS", "openeuler", - "openmandriva", "photon", "suse", "TencentOS", "ubuntu", -- "unknown"] -+ "unknown", "ol"] - or is_rhel %} - # Other config here will be given to the distro class and/or path classes - paths: -@@ -375,7 +385,7 @@ - ssh_svcname: ssh - {% elif variant in ["alpine", "amazon", "aosc", "arch", "azurelinux", "fedora", - "gentoo", "mariner", "OpenCloudOS", "openeuler", -- "openmandriva", "photon", "suse", "TencentOS"] -+ "openmandriva", "photon", "suse", "TencentOS", "ol"] - or is_rhel %} - ssh_svcname: sshd - {% endif %} - -diff --git a/systemd/cloud-final.service b/systemd/cloud-final.service -index ab3daed..1c69dde 100644 ---- a/systemd/cloud-final.service -+++ b/systemd/cloud-final.service -@@ -3,7 +3,6 @@ - Description=Cloud-init: Final Stage - After=network-online.target time-sync.target cloud-config.service rc-local.service - After=multi-user.target --Before=apt-daily.service - Wants=network-online.target cloud-config.service - ConditionPathExists=!/etc/cloud/cloud-init.disabled - ConditionKernelCommandLine=!cloud-init=disabled - -diff --git a/systemd/cloud-init-local.service.tmpl b/systemd/cloud-init-local.service.tmpl -index 3a1ca7f..4750c36 100644 ---- a/systemd/cloud-init-local.service.tmpl -+++ b/systemd/cloud-init-local.service.tmpl -@@ -2,19 +2,21 @@ - [Unit] - # https://docs.cloud-init.io/en/latest/explanation/boot.html - Description=Cloud-init: Local Stage (pre-network) --{% if variant in ["almalinux", "cloudlinux", "ubuntu", "unknown", "debian", "rhel"] %} -+{% if variant in ["almalinux", "cloudlinux", "ubuntu", "unknown", "debian", "rhel", "ol"] %} - DefaultDependencies=no - {% endif %} - Wants=network-pre.target -+{% if variant not in ["ol"] %} - After=hv_kvp_daemon.service --{% if variant in ["almalinux", "cloudlinux", "rhel"] %} -+{% endif %} -+{% if variant in ["almalinux", "cloudlinux", "rhel", "ol"] %} - Requires=dbus.socket - After=dbus.socket - {% endif %} - After=systemd-remount-fs.service - Before=network-pre.target - Before=shutdown.target --{% if variant in ["almalinux", "cloudlinux", "rhel"] %} -+{% if variant in ["almalinux", "cloudlinux", "rhel", "ol"] %} - Before=firewalld.target - {% endif %} - {% if variant in ["ubuntu", "unknown", "debian"] %} -@@ -28,7 +30,7 @@ - - [Service] - Type=oneshot --{% if variant in ["almalinux", "cloudlinux", "rhel"] %} -+{% if variant in ["almalinux", "cloudlinux", "rhel", "ol"] %} - ExecStartPre=/sbin/restorecon /run/cloud-init - {% endif %} - ExecStart=/usr/bin/cloud-init init --local -diff --git a/systemd/cloud-init.service.tmpl b/systemd/cloud-init.service.tmpl -index 90d45f2..2e1ce48 100644 ---- a/systemd/cloud-init.service.tmpl -+++ b/systemd/cloud-init.service.tmpl -@@ -2,7 +2,7 @@ - [Unit] - # https://docs.cloud-init.io/en/latest/explanation/boot.html - Description=Cloud-init: Network Stage --{% if variant not in ["almalinux", "cloudlinux", "photon", "rhel"] %} -+{% if variant not in ["almalinux", "cloudlinux", "photon", "rhel", "ol"] %} - DefaultDependencies=no - {% endif %} - Wants=cloud-init-local.service -@@ -11,13 +11,15 @@ - Wants=sshd-keygen@ed25519.service - Wants=sshd.service - After=cloud-init-local.service -+{% if variant not in ["ol"] %} - After=systemd-networkd-wait-online.service -+{% endif %} - {% if variant in ["ubuntu", "unknown", "debian"] %} - After=networking.service - {% endif %} - {% if variant in ["almalinux", "centos", "cloudlinux", "eurolinux", "fedora", - "miraclelinux", "openeuler", "OpenCloudOS", "openmandriva", "rhel", "rocky", -- "suse", "TencentOS", "virtuozzo"] %} -+ "suse", "TencentOS", "virtuozzo", "ol"] %} - - After=NetworkManager.service - After=NetworkManager-wait-online.service - -diff --git a/systemd/cloud-init-generator.tmpl b/systemd/cloud-init-generator.tmpl ---- a/systemd/cloud-init-generator.tmpl -+++ b/systemd/cloud-init-generator.tmpl -@@ -21,7 +21,7 @@ - CLOUD_SYSTEM_TARGET="/lib/systemd/system/cloud-init.target" - {% endif %} - {% if variant in ["almalinux", "centos", "cloudlinux", "eurolinux", "fedora", -- "miraclelinux", "openeuler", "OpenCloudOS", "openmandriva", "rhel", "rocky", "TencentOS", "virtuozzo"] %} -+ "miraclelinux", "openeuler", "OpenCloudOS", "openmandriva", "rhel", "rocky", "TencentOS", "virtuozzo", "ol"] %} - dsidentify="/usr/libexec/cloud-init/ds-identify" - {% elif variant == "benchmark" %} - dsidentify="/bin/true" - -diff --git a/tests/unittests/test_util.py b/tests/unittests/test_util.py -index b534a1a..49087ad 100644 ---- a/tests/unittests/test_util.py -+++ b/tests/unittests/test_util.py -@@ -1334,6 +1334,7 @@ class TestGetVariant: - ({"system": "linux", "dist": ("sles",)}, "suse"), - ({"system": "linux", "dist": ("sle_hpc",)}, "suse"), - ({"system": "linux", "dist": ("my_distro",)}, "linux"), -+ ({"system": "linux", "dist": ("ol",)}, "ol"), - ({"system": "Windows", "dist": ("dontcare",)}, "windows"), - ({"system": "Darwin", "dist": ("dontcare",)}, "darwin"), - ({"system": "Freebsd", "dist": ("dontcare",)}, "freebsd"), --- -2.31.1 - diff --git a/orabug37065979-DataSourceOracle-network-getdata-retries.patch b/orabug37065979-DataSourceOracle-network-getdata-retries.patch deleted file mode 100644 index 5a2835e..0000000 --- a/orabug37065979-DataSourceOracle-network-getdata-retries.patch +++ /dev/null @@ -1,115 +0,0 @@ -Patch to adapt DataSourceOracle and make it functional for OCI. -Also includes setting for retries and timeouts previously provided by -a separate patch to help PCA instances get IMDS data. - -Orabug: 37065979 - -Signed-off-by: Rajesh Harekal ---- -diff -git a/cloudinit/sources/DataSourceOracle.py b/cloudinit/sources/DataSourceOracle.py ---- a/cloudinit/sources/DataSourceOracle.py 2025-03-07 16:04:37.773216485 -0800 -+++ a/cloudinit/sources/DataSourceOracle.py 2025-03-07 16:32:33.174574170 -0800 -@@ -15,6 +15,7 @@ - - import base64 - import ipaddress -+import os - import json - import logging - import time -@@ -32,6 +33,8 @@ - - LOG = logging.getLogger(__name__) - -+ISCSI_IBFT_PATH='/sys/firmware/acpi/tables/iBFT' -+ - BUILTIN_DS_CONFIG = { - # Don't use IMDS to configure secondary NICs by default - "configure_secondary_nics": False, -@@ -135,8 +138,8 @@ - perform_dhcp_setup = True - - # Careful...these can be overridden in __init__ -- url_max_wait = 30 -- url_timeout = 5 -+ url_max_wait = 180 -+ url_timeout = 20 - - def __init__(self, sys_cfg, *args, **kwargs): - super(DataSourceOracle, self).__init__(sys_cfg, *args, **kwargs) -@@ -149,7 +152,7 @@ - ] - ) - self._network_config_source = KlibcOracleNetworkConfigSource() -- self._network_config: dict = {"config": [], "version": 1} -+ self._network_config = sources.UNSET - - url_params = self.get_url_params() - self.url_max_wait = url_params.max_wait_seconds -@@ -274,7 +277,7 @@ - - def _is_iscsi_root(self) -> bool: - """Return whether we are on a iscsi machine.""" -- return self._network_config_source.is_applicable() -+ return self._network_config_source.is_applicable() or bool(os.path.exists(ISCSI_IBFT_PATH)) - - def _get_iscsi_config(self) -> dict: - return self._network_config_source.render_config() -@@ -294,34 +297,31 @@ - - set_primary = False - # this is v1 -- if self._is_iscsi_root(): -- self._network_config = self._get_iscsi_config() -- if not self._has_network_config(): -- LOG.warning( -- "Could not obtain network configuration from initramfs. " -- "Falling back to IMDS." -+ if self._network_config == sources.UNSET: -+ # this is v1 -+ if not self._has_network_config(): -+ self._network_config = self.distro.generate_fallback_config() -+ set_primary = True -+ -+ set_secondary = self.ds_cfg.get( -+ "configure_secondary_nics", -+ BUILTIN_DS_CONFIG["configure_secondary_nics"], - ) -- set_primary = True -- -- set_secondary = self.ds_cfg.get( -- "configure_secondary_nics", -- BUILTIN_DS_CONFIG["configure_secondary_nics"], -- ) -- if set_primary or set_secondary: -- try: -- # Mutate self._network_config to include primary and/or -- # secondary VNICs -- self._add_network_config_from_opc_imds(set_primary) -- except Exception: -- util.logexc( -- LOG, -- "Failed to parse IMDS network configuration!", -- ) -+ if set_primary or set_secondary: -+ try: -+ # Mutate self._network_config to include primary and/or -+ # secondary VNICs -+ self._add_network_config_from_opc_imds(set_primary) -+ except Exception: -+ util.logexc( -+ LOG, -+ "Failed to parse IMDS network configuration!", -+ ) - -- # we need to verify that the nic selected is not a netfail over -- # device and, if it is a netfail master, then we need to avoid -- # emitting any match by mac -- _ensure_netfailover_safe(self._network_config) -+ # we need to verify that the nic selected is not a netfail over -+ # device and, if it is a netfail master, then we need to avoid -+ # emitting any match by mac -+ _ensure_netfailover_safe(self._network_config) - - return self._network_config -