diff --git a/cloud-init-21.4.tar.gz b/cloud-init-21.4.tar.gz deleted file mode 100644 index 387e6ef..0000000 --- a/cloud-init-21.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ff0794e94b5a21e2496c2d2b1e7ceffb8da443bcb2f86eeb9db06992c4c56e4b -size 1293892 diff --git a/cloud-init-22.4.tar.gz b/cloud-init-22.4.tar.gz new file mode 100644 index 0000000..62e71ac --- /dev/null +++ b/cloud-init-22.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caf39e956b719c7501b83e100198f0629849a3309c45af318748f68d48296400 +size 1510191 diff --git a/cloud-init-break-resolv-symlink.patch b/cloud-init-break-resolv-symlink.patch index 33f540b..849eb57 100644 --- a/cloud-init-break-resolv-symlink.patch +++ b/cloud-init-break-resolv-symlink.patch @@ -1,8 +1,8 @@ --- cloudinit/net/sysconfig.py.orig +++ cloudinit/net/sysconfig.py -@@ -918,6 +918,11 @@ class Renderer(renderer.Renderer): - resolv_content = self._render_dns(network_state, - existing_dns_path=dns_path) +@@ -998,6 +998,11 @@ class Renderer(renderer.Renderer): + network_state, existing_dns_path=dns_path + ) if resolv_content: + # netconfig checks if /etc/resolv.conf is a symlink and if + # that is true will write it's version of the file clobbering @@ -11,4 +11,4 @@ + os.unlink(dns_path) util.write_file(dns_path, resolv_content, file_mode) if self.networkmanager_conf_path: - nm_conf_path = subp.target_path(target, + nm_conf_path = subp.target_path( diff --git a/cloud-init-btrfs-queue-resize.patch b/cloud-init-btrfs-queue-resize.patch new file mode 100644 index 0000000..3173608 --- /dev/null +++ b/cloud-init-btrfs-queue-resize.patch @@ -0,0 +1,84 @@ +--- cloudinit/config/cc_resizefs.py.orig ++++ cloudinit/config/cc_resizefs.py +@@ -60,15 +60,28 @@ def _resize_btrfs(mount_point, devpth): + if not util.mount_is_read_write(mount_point) and os.path.isdir( + "%s/.snapshots" % mount_point + ): +- return ( ++ cmd = [ + "btrfs", + "filesystem", + "resize", + "max", + "%s/.snapshots" % mount_point, +- ) ++ ] + else: +- return ("btrfs", "filesystem", "resize", "max", mount_point) ++ cmd = ["btrfs", "filesystem", "resize", "max", mount_point] ++ ++ # btrfs has exclusive operations and resize may fail if btrfs is busy ++ # doing one of the operations that prevents resize. As of btrfs 5.10 ++ # the resize operation can be queued ++ btrfs_with_queue = util.Version().from_str("5.10") ++ system_btrfs_ver = util.Version().from_str( ++ subp.subp(["btrfs", "--version"])[0].split("v")[-1].strip() ++ ) ++ if system_btrfs_ver >= btrfs_with_queue: ++ idx = cmd.index("resize") ++ cmd.insert(idx + 1, "--enqueue") ++ ++ return tuple(cmd) + + + def _resize_ext(mount_point, devpth): +--- tests/unittests/config/test_cc_resizefs.py.orig ++++ tests/unittests/config/test_cc_resizefs.py +@@ -444,10 +444,12 @@ class TestMaybeGetDevicePathAsWritableBl + + @mock.patch("cloudinit.util.mount_is_read_write") + @mock.patch("cloudinit.config.cc_resizefs.os.path.isdir") +- def test_resize_btrfs_mount_is_ro(self, m_is_dir, m_is_rw): ++ @mock.patch("cloudinit.subp.subp") ++ def test_resize_btrfs_mount_is_ro(self, m_subp, m_is_dir, m_is_rw): + """Do not resize / directly if it is read-only. (LP: #1734787).""" + m_is_rw.return_value = False + m_is_dir.return_value = True ++ m_subp.return_value = ("btrfs-progs v4.19 \n", "") + self.assertEqual( + ("btrfs", "filesystem", "resize", "max", "//.snapshots"), + _resize_btrfs("/", "/dev/sda1"), +@@ -455,15 +457,32 @@ class TestMaybeGetDevicePathAsWritableBl + + @mock.patch("cloudinit.util.mount_is_read_write") + @mock.patch("cloudinit.config.cc_resizefs.os.path.isdir") +- def test_resize_btrfs_mount_is_rw(self, m_is_dir, m_is_rw): ++ @mock.patch("cloudinit.subp.subp") ++ def test_resize_btrfs_mount_is_rw(self, m_subp, m_is_dir, m_is_rw): + """Do not resize / directly if it is read-only. (LP: #1734787).""" + m_is_rw.return_value = True + m_is_dir.return_value = True ++ m_subp.return_value = ("btrfs-progs v4.19 \n", "") + self.assertEqual( + ("btrfs", "filesystem", "resize", "max", "/"), + _resize_btrfs("/", "/dev/sda1"), + ) + ++ @mock.patch("cloudinit.util.mount_is_read_write") ++ @mock.patch("cloudinit.config.cc_resizefs.os.path.isdir") ++ @mock.patch("cloudinit.subp.subp") ++ def test_resize_btrfs_mount_is_rw_has_queue( ++ self, m_subp, m_is_dir, m_is_rw ++ ): ++ """Queue the resize request if btrfs >= 5.10""" ++ m_is_rw.return_value = True ++ m_is_dir.return_value = True ++ m_subp.return_value = ("btrfs-progs v5.10 \n", "") ++ self.assertEqual( ++ ("btrfs", "filesystem", "resize", "--enqueue", "max", "/"), ++ _resize_btrfs("/", "/dev/sda1"), ++ ) ++ + @mock.patch("cloudinit.util.is_container", return_value=True) + @mock.patch("cloudinit.util.is_FreeBSD") + def test_maybe_get_writable_device_path_zfs_freebsd( diff --git a/cloud-init-micro-is-suse.patch b/cloud-init-micro-is-suse.patch new file mode 100644 index 0000000..283923a --- /dev/null +++ b/cloud-init-micro-is-suse.patch @@ -0,0 +1,21 @@ +--- cloudinit/distros/__init__.py.orig ++++ cloudinit/distros/__init__.py +@@ -64,7 +64,7 @@ OSFAMILIES = { + "rocky", + "virtuozzo", + ], +- "suse": ["opensuse", "sles"], ++ "suse": ["opensuse", "sles", "opensuse-microos"], + } + + LOG = logging.getLogger(__name__) +--- cloudinit/util.py.orig ++++ cloudinit/util.py +@@ -653,6 +653,7 @@ def _get_variant(info): + variant = "rhel" + elif linux_dist in ( + "opensuse", ++ "opensuse-microos", + "opensuse-tumbleweed", + "opensuse-leap", + "sles", diff --git a/cloud-init-no-tempnet-oci.patch b/cloud-init-no-tempnet-oci.patch index c6faa29..f42fcae 100644 --- a/cloud-init-no-tempnet-oci.patch +++ b/cloud-init-no-tempnet-oci.patch @@ -1,34 +1,17 @@ --- cloudinit/sources/DataSourceOracle.py.orig +++ cloudinit/sources/DataSourceOracle.py -@@ -134,14 +134,17 @@ class DataSourceOracle(sources.DataSourc - BUILTIN_DS_CONFIG["configure_secondary_nics"] - ) - network_context = noop() -- if not _is_iscsi_root(): -- network_context = dhcp.EphemeralDHCPv4( -- iface=net.find_fallback_nic(), -- connectivity_url_data={ -- "url": METADATA_PATTERN.format(version=2, path="instance"), -- "headers": V2_HEADERS, -- } -- ) -+ # SUSE images are built with iSCSI setup. The detection of the -+ # configured network for iscsi boot is distribution dependent. -+ # There's no implementation for openSUSE/SLE yet. -+ #if not _is_iscsi_root(): -+ # network_context = dhcp.EphemeralDHCPv4( -+ # iface=net.find_fallback_nic(), -+ # connectivity_url_data={ -+ # "url": METADATA_PATTERN.format(version=2, path="instance"), -+ # "headers": V2_HEADERS, -+ # } -+ # ) - with network_context: - fetched_metadata = read_opc_metadata( - fetch_vnics_data=fetch_vnics_data ---- cloudinit/sources/tests/test_oracle.py.orig -+++ cloudinit/sources/tests/test_oracle.py -@@ -666,6 +666,7 @@ class TestNonIscsiRoot_GetDataBehaviour: +@@ -204,6 +204,8 @@ class DataSourceOracle(sources.DataSourc + + def _is_iscsi_root(self) -> bool: + """Return whether we are on a iscsi machine.""" ++ # SUSE images are built with iSCSI setup. ++ return True + return self._network_config_source.is_applicable() + + def _get_iscsi_config(self) -> dict: +--- tests/unittests/sources/test_oracle.py.orig ++++ tests/unittests/sources/test_oracle.py +@@ -996,6 +996,7 @@ class TestNonIscsiRoot_GetDataBehaviour: def test_read_opc_metadata_called_with_ephemeral_dhcp( self, m_find_fallback_nic, m_EphemeralDHCPv4, oracle_ds ): diff --git a/cloud-init-suse-afternm.patch b/cloud-init-suse-afternm.patch new file mode 100644 index 0000000..a301b1c --- /dev/null +++ b/cloud-init-suse-afternm.patch @@ -0,0 +1,11 @@ +--- systemd/cloud-init.service.tmpl.orig ++++ systemd/cloud-init.service.tmpl +@@ -19,6 +19,8 @@ After=NetworkManager.service + {% endif %} + {% if variant in ["suse"] %} + After=wicked.service ++After=NetworkManager.service ++After=NetworkManager-wait-online.service + # setting hostname via hostnamectl depends on dbus, which otherwise + # would not be guaranteed at this point. + After=dbus.service diff --git a/cloud-init-sysconf-path.patch b/cloud-init-sysconf-path.patch index 7422989..50aaf97 100644 --- a/cloud-init-sysconf-path.patch +++ b/cloud-init-sysconf-path.patch @@ -1,13 +1,12 @@ --- cloudinit/net/sysconfig.py.orig +++ cloudinit/net/sysconfig.py -@@ -973,9 +973,7 @@ def available_sysconfig(target=None): - if not subp.which(p, search=search, target=target): +@@ -1056,8 +1056,7 @@ def available(target=None): return False -- expected_paths = [ -- 'etc/sysconfig/network-scripts/network-functions', -- 'etc/sysconfig/config'] -+ expected_paths = ['etc/sysconfig/network/scripts/functions.netconfig'] + expected_paths = [ +- "etc/sysconfig/network-scripts/network-functions", +- "etc/sysconfig/config", ++ 'etc/sysconfig/network/scripts/functions.netconfig' + ] for p in expected_paths: if os.path.isfile(subp.target_path(target, p)): - return True diff --git a/cloud-init-sysctl-not-in-bin.patch b/cloud-init-sysctl-not-in-bin.patch deleted file mode 100644 index 55b5583..0000000 --- a/cloud-init-sysctl-not-in-bin.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- cloudinit/analyze/show.py.orig -+++ cloudinit/analyze/show.py -@@ -136,7 +136,7 @@ class SystemctlReader(object): - ''' - def __init__(self, property, parameter=None): - self.epoch = None -- self.args = ['/bin/systemctl', 'show'] -+ self.args = ['systemctl', 'show'] - if parameter: - self.args.append(parameter) - self.args.extend(['-p', property]) ---- cloudinit/config/cc_puppet.py.orig -+++ cloudinit/config/cc_puppet.py -@@ -109,8 +109,8 @@ def _autostart_puppet(log): - subp.subp(['sed', '-i', - '-e', 's/^START=.*/START=yes/', - '/etc/default/puppet'], capture=False) -- elif os.path.exists('/bin/systemctl'): -- subp.subp(['/bin/systemctl', 'enable', 'puppet.service'], -+ elif subp.which('systemctl'): -+ subp.subp(['systemctl', 'enable', 'puppet.service'], - capture=False) - elif os.path.exists('/sbin/chkconfig'): - subp.subp(['/sbin/chkconfig', 'puppet', 'on'], capture=False) ---- cloudinit/sources/helpers/azure.py.orig -+++ cloudinit/sources/helpers/azure.py -@@ -112,7 +112,7 @@ def get_boot_telemetry(): - ) from e - - try: -- out, _ = subp.subp(['/bin/systemctl', -+ out, _ = subp.subp(['systemctl', - 'show', '-p', - 'UserspaceTimestampMonotonic'], - capture=True) -@@ -135,7 +135,7 @@ def get_boot_telemetry(): - ) from e - - try: -- out, _ = subp.subp(['/bin/systemctl', 'show', -+ out, _ = subp.subp(['systemctl', 'show', - 'cloud-init-local', '-p', - 'InactiveExitTimestampMonotonic'], - capture=True) ---- tests/unittests/test_handler/test_handler_puppet.py.orig -+++ tests/unittests/test_handler/test_handler_puppet.py -@@ -31,7 +31,7 @@ class TestAutostartPuppet(CiTestCase): - - def test_wb_autostart_pupppet_enables_puppet_systemctl(self, m_os, m_subp): - """If systemctl is present, enable puppet via systemctl.""" -- -+ return - def _fake_exists(path): - return path == '/bin/systemctl' - -@@ -43,7 +43,7 @@ class TestAutostartPuppet(CiTestCase): - - def test_wb_autostart_pupppet_enables_puppet_chkconfig(self, m_os, m_subp): - """If chkconfig is present, enable puppet via checkcfg.""" -- -+ return - def _fake_exists(path): - return path == '/sbin/chkconfig' - diff --git a/cloud-init-vmware-test.patch b/cloud-init-vmware-test.patch deleted file mode 100644 index 1ccc11a..0000000 --- a/cloud-init-vmware-test.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: cloud-init-21.4/tests/unittests/test_datasource/test_vmware.py -=================================================================== ---- cloud-init-21.4.orig/tests/unittests/test_datasource/test_vmware.py -+++ cloud-init-21.4/tests/unittests/test_datasource/test_vmware.py -@@ -91,7 +91,7 @@ class TestDataSourceVMware(CiTestCase): - self.assertTrue(host_info["hostname"]) - self.assertTrue(host_info["local-hostname"]) - self.assertTrue(host_info["local_hostname"]) -- self.assertTrue(host_info[DataSourceVMware.LOCAL_IPV4]) -+ #self.assertTrue(host_info[DataSourceVMware.LOCAL_IPV4]) - - - class TestDataSourceVMwareEnvVars(FilesystemMockingTestCase): diff --git a/cloud-init-write-routes.patch b/cloud-init-write-routes.patch index 33b3938..be787a8 100644 --- a/cloud-init-write-routes.patch +++ b/cloud-init-write-routes.patch @@ -1,45 +1,41 @@ --- cloudinit/distros/__init__.py.orig +++ cloudinit/distros/__init__.py -@@ -220,6 +220,15 @@ class Distro(persistence.CloudInitPickle - network_state = parse_net_config_data(netconfig) - try: - self._write_network_state(network_state) -+ # The sysconfig renderer has no route writing implementation -+ # for SUSE yet use the old code for now that depends on the -+ # raw config. -+ try: -+ # Only exists for SUSE distro via this patch all other -+ # implementations throw which breaks testing -+ self._write_routes(netconfig) -+ except AttributeError: -+ pass - except NotImplementedError: - # backwards compat until all distros have apply_network_config - return self._apply_network_from_network_config( +@@ -267,6 +267,15 @@ class Distro(persistence.CloudInitPickle + + network_state = parse_net_config_data(netconfig, renderer=renderer) + self._write_network_state(network_state, renderer) ++ # The sysconfig renderer has no route writing implementation ++ # for SUSE yet use the old code for now that depends on the ++ # raw config. ++ try: ++ # Only exists for SUSE distro via this patch all other ++ # implementations throw which breaks testing ++ self._write_routes(netconfig) ++ except AttributeError: ++ pass + + # Now try to bring them up + if bring_up: --- cloudinit/distros/opensuse.py.orig +++ cloudinit/distros/opensuse.py -@@ -8,9 +8,12 @@ +@@ -8,11 +8,16 @@ # # This file is part of cloud-init. See LICENSE file for license information. +import logging + - from cloudinit import distros - - from cloudinit.distros.parsers.hostname import HostnameConf -+from cloudinit.net.network_state import mask_to_net_prefix - - from cloudinit import helpers - from cloudinit import subp -@@ -19,6 +22,7 @@ from cloudinit import util + from cloudinit import distros, helpers, subp, util from cloudinit.distros import rhel_util as rhutil + from cloudinit.distros.parsers.hostname import HostnameConf ++from cloudinit.net import ipv4_mask_to_net_prefix from cloudinit.settings import PER_INSTANCE +LOG = logging.getLogger(__name__) ++ class Distro(distros.Distro): - clock_conf_fn = '/etc/sysconfig/clock' -@@ -168,6 +172,143 @@ class Distro(distros.Distro): + clock_conf_fn = "/etc/sysconfig/clock" +@@ -165,6 +170,143 @@ class Distro(distros.Distro): conf.set_hostname(hostname) util.write_file(filename, str(conf), 0o644) @@ -79,7 +75,7 @@ + if dest != 'default': + netmask = route.get('netmask') + if netmask: -+ prefix = mask_to_net_prefix(netmask) ++ prefix = ipv4_mask_to_net_prefix(netmask) + dest += '/' + str(prefix) + if '/' not in dest: + LOG.warning( diff --git a/cloud-init.changes b/cloud-init.changes index 668aa41..2823181 100644 --- a/cloud-init.changes +++ b/cloud-init.changes @@ -1,8 +1,708 @@ ------------------------------------------------------------------- -Tue Apr 26 09:44:55 UTC 2022 - pgajdos@suse.com +Thu Dec 22 18:10:45 UTC 2022 - Robert Schweikert -- python-mock is not required for build - https://trello.com/c/S6eADbii/64-remove-python-mock +- Update to version 22.4 + + Remove patches included upstream: + - cloud-init-vmware-test.patch + - cloud-init-sysctl-not-in-bin.patch + + Forward port: + - cloud-init-write-routes.patch + - cloud-init-break-resolv-symlink.patch + - cloud-init-sysconf-path.patch + - cloud-init-no-tempnet-oci.patch + + Add cloud-init-btrfs-queue-resize.patch (bsc#1171511) + + Add cloud-init-micro-is-suse.patch (bsc#1203393) [Martin Petersen] + + Add cloud-init-suse-afternm.patch + + test: fix pro integration test [Alberto Contreras] + + cc_disk_setup: pass options in correct order to utils (#1829) + [dermotbradley] + + tests: text_lxd basic_preseed verify_clean_log (#1826) + + docs: switch sphinx theme to furo (SC-1327) (#1821) [Alberto Contreras] + + tests: activate Ubuntu Pro tests (only on Jenkins) (#1777) + [Alberto Contreras] + + tests: test_lxd assert features.storage.buckets when present (#1827) + + tests: replace missed ansible install-method with underscore (#1825) + + tests: replace ansible install-method with underscore + + ansible: standardize schema keys + + ci: run json tool on 22.04 rather than 20.04 (#1823) + + Stop using devices endpoint for LXD network config (#1819) + + apport: address new curtin log and config locations (#1812) + + cc_grub: reword docs for clarity (#1818) + + tests: Fix preseed test (#1820) + + Auto-format schema (#1810) + + Ansible Control Module (#1778) + + Fix last reported event possibly not being sent (#1796) (LP: #1993836) + + tests: Ignore unsupported lxd project keys (#1817) [Alberto Contreras] + + udevadm settle should handle non-udev system gracefully (#1806) + [dermotbradley] + + add mariner support (#1780) [Minghe Ren] + + Net: add BSD ifconfig(8) parser and state class (#1779) [Mina Galić] + + adding itjamie to .github-cla-signers [Jamie (Bear) Murphy] + + Fix inconsistency between comment and statement (#1809) [Guillaume Gay] + + Update .github-cla-signers (#1811) [Guillaume Gay] + + alpine.py: Add Alpine-specific manage_service function and update tests + (#1804) [dermotbradley] + + test: add 3.12-dev to Travis CI (#1798) [Alberto Contreras] + + add NWCS datasource (#1793) [shell-skrimp] + + Adding myself as CLA signer (#1799) [s-makin] + + apport: fix some data collection failures due to symlinks (#1797) + [Dan Bungert] + + read-version: Make it compatible with bionic (#1795) [Alberto Contreras] + + lxd: add support for lxd preseed config(#1789) + + Enable hotplug for LXD datasource (#1787) + + cli: collect logs and apport subiquity support + + add support for Container-Optimized OS (#1748) [vteratipally] + + test: temporarily disable failing integration test (#1792) + + Fix LXD/nocloud detection on lxd vm tests (#1791) + + util: Implement __str__ and __iter__ for Version (#1790) + + cc_ua: consume ua json api for enable commands [Alberto Contreras] + + Add clarity to cc_final_message docs (#1788) + + cc_ntp: add support for BSDs (#1759) [Mina Galić] (LP: #1990041) + + make Makefile make agnostic (#1786) [Mina Galić] + + Remove hardcoding and unnecessary overrides in Makefile (#1783) + [Joseph Mingrone] + + Add my username (Jehops) to .github-cla-signers (#1784) [Joseph Mingrone] + + Temporarily remove broken test (#1781) + + Create reference documentation for base config + + cc_ansible: add support for galaxy install (#1736) + + distros/manage_services: add support to disable service (#1772) + [Mina Galić] (LP: #1991024) + + OpenBSD: remove pkg_cmd_environ function (#1773) + [Mina Galić] (LP: 1991567) + + docs: Correct typo in the FAQ (#1774) [Maximilian Wörner] + + tests: Use LXD metadata to determine NoCloud status (#1776) + + analyze: use init-local as start of boot record (#1767) [Chris Patterson] + + docs: use opensuse for distro name in package doc (#1771) + + doc: clarify packages as dev only (#1769) [Alberto Contreras] + + Distro manage service: Improve BSD support (#1758) + [Mina Galić] (LP: #1990070) + + testing: check logs for critical errors (#1765) [Chris Patterson] + + cc_ubuntu_advantage: Handle already attached on Pro [Alberto Contreras] + + doc: Add configuration explanation (SC-1169) + + Fix Oracle DS primary interface when using IMDS (#1757) (LP: #1989686) + + style: prefer absolute imports over relative imports [Mina Galić] + + tests: Fix ip log during instance destruction (#1755) [Alberto Contreras] + + cc_ubuntu_advantage: add ua_config in auto-attach [Alberto Contreras] + + apt configure: sources write/append mode (#1738) + [Fabian Lichtenegger-Lukas] + + networkd: Add test and improve typing. (#1747) [Alberto Contreras] + + pycloudlib: bump commit for gce cpu architecture support (#1750) + + commit ffcb29bc8315d1e1d6244eeb1cbd8095958f7bad (LP: #1307667) + + testing: workaround LXD vendor data (#1740) + + support dhcp{4,6}-overrides in networkd renderer (#1710) [Aidan Obley] + + tests: Drop httpretty in favor of responses (#1720) [Alberto Contreras] + + cc_ubuntu_advantage: Implement custom auto-attach behaviors (#1583) + [Alberto Contreras] + + Fix Oracle DS not setting subnet when using IMDS (#1735) (LP: #1989686) + + testing: focal lxd datasource discovery (#1734) + + cc_ubuntu_advantage: Redact token from logs (#1726) [Alberto Contreras] + + docs: make sure echo properly evaluates the string (#1733) [Mina Galić] + + net: set dhclient lease and pid files (#1715) + + cli: status machine-readable output --format yaml/json (#1663) + (LP: #1883122) + + tests: Simplify does_not_raise (#1731) [Alberto Contreras] + + Refactor: Drop inheritance from object (#1728) [Alberto Contreras] + + testing: LXD datasource now supported on Focal (#1732) + + Allow jinja templating in /etc/cloud (SC-1170) (#1722) (LP: #1913461) + + sources/azure: ensure instance id is always correct (#1727) + [Chris Patterson] + + azure: define new attribute for pre-22.3 pickles (#1725) + + doc: main page Diátaxis rewording (SC-967) (#1701) + + ubuntu advantage: improved idempotency, enable list is now strict + + [Fabian Lichtenegger-Lukas] + + test: bump pycloudlib (#1724) [Alberto Contreras] + + cloud.cfg.tmpl: make sure "centos" settings are identical to "rhel" + (#1639) [Emanuele Giuseppe Esposito] + + lxd: fetch 1.0/devices content (#1712) [Alberto Contreras] + + Update docs according to ad8f406a (#1719) + + testing: Port unittests/analyze to pytest (#1708) [Alberto Contreras] + + doc: Fix rtd builds. (#1718) [Alberto Contreras] + + testing: fully mock noexec calls (#1717) [Alberto Contreras] + + typing: Add types to cc_.handle (#1700) [Alberto Contreras] + + Identify 3DS Outscale Datasource as Ec2 (#1686) [Maxime Dufour] + + config: enable bootstrapping pip in ansible (#1707) + + Fix cc_chef typing issue (#1716) + + Refactor instance json files to use Paths (SC-1238) (#1709) + + tools: read-version check GITHUB_REF and git branch --show-current + (#1677) + + net: Ensure a tmp with exec permissions for dhcp (#1690) + [Alberto Contreras] (LP: #1962343) + + testing: Fix test regression in test_combined (#1713) [Alberto Contreras] + + Identify Huawei Cloud as OpenStack (#1689) [huang xinjie] + + doc: add reporting suggestion to FAQ (SC-1236) (#1698) + +From 22.3 + + sources: obj.pkl cache should be written anyime get_data is run (#1669) + + schema: drop release number from version file (#1664) + + pycloudlib: bump to quiet azure HTTP info logs (#1668) + + test: fix wireguard integration tests (#1666) + + Github is deprecating the 18.04 runner starting 12.1 (#1665) + + integration tests: Ensure one setup for all tests (#1661) + + tests: ansible test fixes (#1660) + + Prevent concurrency issue in test_webhook_hander.py (#1658) + + Workaround net_setup_link race with udev (#1655) (LP: #1983516) + + test: drop erroneous lxd assertion, verify command succeeded (#1657) + + Fix Chrony usage on Centos Stream (#1648) [Sven Haardiek] (LP: #1885952) + + sources/azure: handle network unreachable errors for savable PPS (#1642) + [Chris Patterson] + + Return cc_set_hostname to PER_INSTANCE frequency (#1651) (LP: #1983811) + + test: Collect integration test time by default (#1638) + + test: Drop forced package install hack in lxd integration test (#1649) + + schema: Resolve user-data if --system given (#1644) + [Alberto Contreras] (LP: #1983306) + + test: use fake filesystem to avoid file removal (#1647) + [Alberto Contreras] + + tox: Fix tip-flake8 and tip-mypy (#1635) [Alberto Contreras] + + config: Add wireguard config module (#1570) [Fabian Lichtenegger-Lukas] + + tests: can run without azure-cli, tests expect inactive ansible (#1643) + + typing: Type UrlResponse.contents (#1633) [Alberto Contreras] + + testing: fix references to `DEPRECATED.` (#1641) [Alberto Contreras] + + ssh_util: Handle sshd_config.d folder [Alberto Contreras] (LP: #1968873) + + schema: Enable deprecations in cc_update_etc_hosts (#1631) + [Alberto Contreras] + + Add Ansible Config Module (#1579) + + util: Support Idle process state in get_proc_ppid() (#1637) + + schema: Enable deprecations in cc_growpart (#1628) [Alberto Contreras] + + schema: Enable deprecations in cc_users_groups (#1627) + [Alberto Contreras] + + util: Fix error path and parsing in get_proc_ppid() + + main: avoid downloading full contents cmdline urls (#1606) + [Alberto Contreras] (LP: #1937319) + + schema: Enable deprecations in cc_scripts_vendor (#1629) + [Alberto Contreras] + + schema: Enable deprecations in cc_set_passwords (#1630) + [Alberto Contreras] + + sources/azure: add experimental support for preprovisioned os disks + (#1622) [Chris Patterson] + + Remove configobj a_to_u calls (#1632) [Stefano Rivera] + + cc_debug: Drop this module (#1614) [Alberto Contreras] + + schema: add aggregate descriptions in anyOf/oneOf (#1636) + + testing: migrate test_sshutil to pytest (#1617) [Alberto Contreras] + + testing: Fix test_ca_certs integration test (#1626) [Alberto Contreras] + + testing: add support for pycloudlib's pro images (#1604) + [Alberto Contreras] + + testing: migrate test_cc_set_passwords to pytest (#1615) + [Alberto Contreras] + + network: add system_info network activator cloud.cfg overrides (#1619) + (LP: #1958377) + + docs: Align git remotes with uss-tableflip setup (#1624) + [Alberto Contreras] + + testing: cover active config module checks (#1609) [Alberto Contreras] + + lxd: lvm avoid thinpool when kernel module absent + + lxd: enable MTU configuration in cloud-init + + doc: pin doc8 to last passing version + + cc_set_passwords fixes (#1590) + + Modernise importer.py and type ModuleDetails (#1605) [Alberto Contreras] + + config: Def activate_by_schema_keys for t-z (#1613) [Alberto Contreras] + + config: define activate_by_schema_keys for p-r mods (#1611) + [Alberto Contreras] + + clean: add param to remove /etc/machine-id for golden image creation + + config: define `activate_by_schema_keys` for a-f mods (#1608) + [Alberto Contreras] + + config: define activate_by_schema_keys for s mods (#1612) + [Alberto Contreras] + + sources/azure: reorganize tests for network config (#1586) + + [Chris Patterson] + + config: Define activate_by_schema_keys for g-n mods (#1610) + [Alberto Contreras] + + meta-schema: add infra to skip inapplicable modules [Alberto Contreras] + + sources/azure: don't set cfg["password"] for default user pw (#1592) + [Chris Patterson] + + schema: activate grub-dpkg deprecations (#1600) [Alberto Contreras] + + docs: clarify user password purposes (#1593) + + cc_lxd: Add btrfs and lvm lxd storage options (SC-1026) (#1585) + + archlinux: Fix distro naming[1] (#1601) [Kristian Klausen] + + cc_ubuntu_autoinstall: support live-installer autoinstall config + + clean: allow third party cleanup scripts in /etc/cloud/clean.d (#1581) + + sources/azure: refactor chassis asset tag handling (#1574) + [Chris Patterson] + + Add "netcho" as contributor (#1591) [Kaloyan Kotlarski] + + testing: drop impish support (#1596) [Alberto Contreras] + + black: fix missed formatting issue which landed in main (#1594) + + bsd: Don't assume that root user is in root group (#1587) + + docs: Fix comment typo regarding use of packages (#1582) + [Peter Mescalchin] + + Update govc command in VMWare walkthrough (#1576) [manioo8] + + Update .github-cla-signers (#1588) [Daniel Mullins] + + Rename the openmandriva user to omv (#1575) [Bernhard Rosenkraenzer] + + sources/azure: increase read-timeout to 60 seconds for wireserver + (#1571) [Chris Patterson] + + Resource leak cleanup (#1556) + + testing: remove appereances of FakeCloud (#1584) [Alberto Contreras] + + Fix expire passwords for hashed passwords (#1577) + [Sadegh Hayeri] (LP: #1979065) + + mounts: fix suggested_swapsize for > 64GB hosts (#1569) [Steven Stallion] + + Update chpasswd schema to deprecate password parsing (#1517) + + tox: Remove entries from default envlist (#1578) (LP: #1980854) + + tests: add test for parsing static dns for existing devices (#1557) + [Jonas Konrad] + + testing: port cc_ubuntu_advantage test to pytest (#1559) + [Alberto Contreras] + + Schema deprecation handling (#1549) [Alberto Contreras] + + Enable pytest to run in parallel (#1568) + + sources/azure: refactor ovf-env.xml parsing (#1550) [Chris Patterson] + + schema: Force stricter validation (#1547) + + ubuntu advantage config: http_proxy, https_proxy (#1512) + [Fabian Lichtenegger-Lukas] + + net: fix interface matching support (#1552) (LP: #1979877) + + Fuzz testing jsonchema (#1499) [Alberto Contreras] + + testing: Wait for changed boot-id in test_status.py (#1548) + + CI: Fix GH pinned-format jobs (#1558) [Alberto Contreras] + + Typo fix (#1560) [Jaime Hablutzel] + + tests: mock dns lookup that causes long timeouts (#1555) + + tox: add unpinned env for do_format and check_format (#1554) + + cc_ssh_import_id: Substitute deprecated warn (#1553) [Alberto Contreras] + + Remove schema errors from log (#1551) (LP: #1978422) (CVE-2022-2084) + + Update WebHookHandler to run as background thread (SC-456) (#1491) + (LP: #1910552) + + testing: Don't run custom cloud dir test on Bionic (#1542) + + bash completion: update schema command (#1543) (LP: #1979547) + + CI: add non-blocking run against the linters tip versions (#1531) + [Paride Legovini] + + Change groups within the users schema to support lists and strings + (#1545) [RedKrieg] + + make it clear which username should go in the contributing doc (#1546) + + Pin setuptools for Travis (SC-1136) (#1540) + + Fix LXD datasource crawl when BOOT enabled (#1537) + + testing: Fix wrong path in dual stack test (#1538) + + cloud-config: honor cloud_dir setting (#1523) + [Alberto Contreras] (LP: #1976564) + + Add python3-debconf to pkg-deps.json Build-Depends (#1535) + [Alberto Contreras] + + redhat spec: udev/rules.d lives under /usr/lib on rhel-based systems + (#1536) + + tests/azure: add test coverage for DisableSshPasswordAuthentication + (#1534) [Chris Patterson] + + summary: Add david-caro to the cla signers (#1527) [David Caro] + + Add support for OpenMandriva (https://openmandriva.org/) (#1520) + [Bernhard Rosenkraenzer] + + tests/azure: refactor ovf creation (#1533) [Chris Patterson] + + Improve DataSourceOVF error reporting when script disabled (#1525) [rong] + + tox: integration-tests-jenkins: softfail if only some test failed + (#1528) [Paride Legovini] + + CI: drop linters from Travis CI (moved to GH Actions) (#1530) + [Paride Legovini] + + sources/azure: remove unused encoding support for customdata (#1526) + [Chris Patterson] + + sources/azure: remove unused metadata captured when parsing ovf (#1524) + [Chris Patterson] + + sources/azure: remove dscfg parsing from ovf-env.xml (#1522) + [Chris Patterson] + + Remove extra space from ec2 dual stack crawl message (#1521) + + tests/azure: use namespaces in generated ovf-env.xml documents (#1519) + [Chris Patterson] + + setup.py: adjust udev/rules default path (#1513) + [Emanuele Giuseppe Esposito] + + Add python3-deconf dependency (#1506) [Alberto Contreras] + + Change match macadress param for network v2 config (#1518) + [Henrique Caricatti Capozzi] + + sources/azure: remove unused userdata property from ovf (#1516) + [Chris Patterson] + + sources/azure: minor refactoring to network config generation (#1497) + [Chris Patterson] + + net: Implement link-local ephemeral ipv6 + + Rename function to avoid confusion (#1501) + + Fix cc_phone_home requiring 'tries' (#1500) (LP: #1977952) + + datasources: replace networking functions with stdlib and cloudinit.net + + code + + Remove xenial references (#1472) [Alberto Contreras] + + Oracle ds changes (#1474) [Alberto Contreras] (LP: #1967942) + + improve runcmd docs (#1498) + + add 3.11-dev to Travis CI (#1493) + + Only run github actions on pull request (#1496) + + Fix integration test client creation (#1494) [Alberto Contreras] + + tox: add link checker environment, fix links (#1480) + + cc_ubuntu_advantage: Fix doc (#1487) [Alberto Contreras] + + cc_yum_add_repo: Fix repo id canonicalization (#1489) + [Alberto Contreras] (LP: #1975818) + + Add linitio as contributor in the project (#1488) [Kevin Allioli] + + net-convert: use yaml.dump for debugging python NetworkState obj (#1484) + (LP: #1975907) + + test_schema: no relative $ref URLs, replace $ref with local path (#1486) + + cc_set_hostname: do not write "localhost" when no hostname is given + + (#1453) [Emanuele Giuseppe Esposito] + + Update .github-cla-signers (#1478) [rong] + + schema: write_files defaults, versions $ref full URL and add vscode + (#1479) + + docs: fix external links, add one more to the list (#1477) + + doc: Document how to change module frequency (#1481) + + tests: bump pycloudlib (#1482) + + tests: bump pycloudlib pinned commit for kinetic Azure (#1476) + + testing: fix test_status.py (#1475) + + integration tests: If KEEP_INSTANCE = True, log IP (#1473) + + Drop mypy excluded files (#1454) [Alberto Contreras] + + Docs additions (#1470) + + Add "formatting tests" to Github Actions + + Remove unused arguments in function signature (#1471) + + Changelog: correct errant classification of LP issues as GH (#1464) + + Use Network-Manager and Netplan as default renderers for RHEL and Fedora + (#1465) [Emanuele Giuseppe Esposito] + +From 22.2 + + Fix test due to caplog incompatibility (#1461) [Alberto Contreras] + + Align rhel custom files with upstream (#1431) + [Emanuele Giuseppe Esposito] + + cc_write_files: Improve schema. (#1460) [Alberto Contreras] + + cli: Redact files with permission errors in commands (#1440) + + [Alberto Contreras] (LP: #1953430) + + Improve cc_set_passwords. (#1456) [Alberto Contreras] + + testing: make fake cloud-init wait actually wait (#1459) + + Scaleway: Fix network configuration for netplan 0.102 and later (#1455) + [Maxime Corbin] + + Fix 'ephmeral' typos in disk names(#1452) [Mike Hucka] + + schema: version schema-cloud-config-v1.json (#1424) + + cc_modules: set default meta frequency value when no config available + (#1457) + + Log generic warning on non-systemd systems. (#1450) [Alberto Contreras] + + cc_snap.maybe_install_squashfuse no longer needed in Bionic++. (#1448) + [Alberto Contreras] + + Drop support of *-sk keys in cc_ssh (#1451) [Alberto Contreras] + + testing: Fix console_log tests (#1437) + + tests: cc_set_passoword update for systemd, non-systemd distros (#1449) + + Fix bug in url_helper/dual_stack() logging (#1426) + + schema: render schema paths from _CustomSafeLoaderWithMarks (#1391) + + testing: Make integration tests kinetic friendly (#1441) + + Handle error if SSH service no present. (#1422) + [Alberto Contreras] (LP: #1969526) + + Fix network-manager activator availability and order (#1438) + + sources/azure: remove reprovisioning marker (#1414) [Chris Patterson] + + upstart: drop vestigial support for upstart (#1421) + + testing: Ensure NoCloud detected in test (#1439) + + Update .github-cla-signers kallioli [Kevin Allioli] + + Consistently strip top-level network key (#1417) (LP: #1906187) + + testing: Fix LXD VM metadata test (#1430) + + testing: Add NoCloud setup for NoCloud test (#1425) + + Update linters and adapt code for compatibility (#1434) [Paride Legovini] + + run-container: add support for LXD VMs (#1428) [Paride Legovini] + + integration-reqs: bump pycloudlib pinned commit (#1427) [Paride Legovini] + + Fix NoCloud docs (#1423) + + Docs fixes (#1406) + + docs: Add docs for module creation (#1415) + + Remove cheetah from templater (#1416) + + tests: verify_ordered_items fallback to re.escape if needed (#1420) + + Misc module cleanup (#1418) + + docs: Fix doc warnings and enable errors (#1419) + [Alberto Contreras] (LP: #1876341) + + Refactor cloudinit.sources.NetworkConfigSource to enum (#1413) + [Alberto Contreras] (LP: #1874875) + + Don't fail if IB and Ethernet devices 'collide' (#1411) + + Use cc_* module meta defintion over hardcoded vars (SC-888) (#1385) + + Fix cc_rsyslog.py initialization (#1404) [Alberto Contreras] + + Promote cloud-init schema from devel to top level subcommand (#1402) + + mypy: disable missing imports warning for httpretty (#1412) + [Chris Patterson] + + users: error when home should not be created AND ssh keys provided + [Jeffrey 'jf' Lim] + + Allow growpart to resize encrypted partitions (#1316) + + Fix typo in integration_test.rst (#1405) [Alberto Contreras] + + cloudinit.net refactor: apply_network_config_names (#1388) + [Alberto Contreras] (LP: #1884602) + + tests/azure: add fixtures for hardcoded paths (markers and data_dir) + (#1399) [Chris Patterson] + + testing: Add responses workaround for focal/impish (#1403) + + cc_ssh_import_id: fix is_key_in_nested_dict to avoid early False + + Fix ds-identify not detecting NoCloud seed in config (#1381) + (LP: #1876375) + + sources/azure: retry dhcp for failed processes (#1401) [Chris Patterson] + + Move notes about refactorization out of CONTRIBUTING.rst (#1389) + + Shave ~8ms off generator runtime (#1387) + + Fix provisioning dhcp timeout to 20 minutes (#1394) [Chris Patterson] + + schema: module example strict testing fix seed_random + + cc_set_hostname: examples small typo (perserve vs preserve) + [Wouter Schoot] + + sources/azure: refactor http_with_retries to remove **kwargs (#1392) + [Chris Patterson] + + declare dependency on ssh-import-id (#1334) + + drop references to old dependencies and old centos script + + sources/azure: only wait for primary nic to be attached during restore + (#1378) [Anh Vo] + + cc_ntp: migrated legacy schema to cloud-init-schema.json (#1384) + + Network functions refactor and bugfixes (#1383) + + schema: add JSON defs for modules cc_users_groups (#1379) + (LP: #1858930) + + Fix doc typo (#1382) [Alberto Contreras] + + Add support for dual stack IPv6/IPv4 IMDS to Ec2 (#1160) + + Fix KeyError when rendering sysconfig IPv6 routes (#1380) (LP: #1958506) + + Return a namedtuple from subp() (#1376) + + Mypy stubs and other tox maintenance (SC-920) (#1374) + + Distro Compatibility Fixes (#1375) + + Pull in Gentoo patches (#1372) + + schema: add json defs for modules U-Z (#1360) + (LP: #1858928, #1858929, #1858931, #1858932) + + util: atomically update sym links to avoid Suppress FileNotFoundError + + when reading status (#1298) [Adam Collard] (LP: #1962150) + + schema: add json defs for modules scripts-timezone (SC-801) (#1365) + + docs: Add first tutorial (SC-900) (#1368) + + BUG 1473527: module ssh-authkey-fingerprints fails Input/output error… + (#1340) [Andrew Lee] (LP: #1473527) + + add arch hosts template (#1371) + + ds-identify: detect LXD for VMs launched from host with > 5.10 kernel + (#1370) (LP: #1968085) + + Support EC2 tags in instance metadata (#1309) [Eduardo Dobay] + + schema: add json defs for modules e-install (SC-651) (#1366) + + Improve "(no_create_home|system): true" test (#1367) [Jeffrey 'jf' Lim] + + Expose https_proxy env variable to ssh-import-id cmd (#1333) + [Michael Rommel] + + sources/azure: remove bind/unbind logic for hot attached nic (#1332) + [Chris Patterson] + + tox: add types-* packages to check_format env (#1362) + + tests: python 3.10 is showing up in cloudimages (#1364) + + testing: add additional mocks to test_net tests (#1356) [yangzz-97] + + schema: add JSON schema for mcollective, migrator and mounts modules + (#1358) + + Honor system locale for RHEL (#1355) [Wei Shi] + + doc: Fix typo in cloud-config-run-cmds.txt example (#1359) [Ali Shirvani] + + ds-identify: also discover LXD by presence from DMI board_name = LXD + (#1311) + + black: bump pinned version to 22.3.0 to avoid click dependency issues + (#1357) + + Various doc fixes (#1330) + + testing: Add missing is_FreeBSD mock to networking test (#1353) + + Add --no-update to add-apt-repostory call (SC-880) (#1337) + + schema: add json defs for modules K-L (#1321) + (LP: #1858899, #1858900, #1858901, #1858902) + + docs: Re-order readthedocs install (#1354) + + Stop cc_ssh_authkey_fingerprints from ALWAYS creating home (#1343) + [Jeffrey 'jf' Lim] + + docs: add jinja2 pin (#1352) + + Vultr: Use find_candidate_nics, use ipv6 dns (#1344) [eb3095] + + sources/azure: move get_ip_from_lease_value out of shim (#1324) + [Chris Patterson] + + Fix cloud-init status --wait when no datasource found (#1349) + (LP: #1966085) + + schema: add JSON defs for modules resize-salt (SC-654) (#1341) + + Add myself as a future contributor (#1345) [Neal Gompa (ニール・ゴンパ)] + + Update .github-cla-signers (#1342) [Jeffrey 'jf' Lim] + + add Requires=cloud-init-hotplugd.socket in cloud-init-hotplugd.service + + file (#1335) [yangzz-97] + + Fix sysconfig render when set-name is missing (#1327) + [Andrew Kutz] (LP: #1855945) + + Refactoring helper funcs out of NetworkState (#1336) [Andrew Kutz] + + url_helper: add tuple support for readurl timeout (#1328) + [Chris Patterson] + + Make fs labels match for ds-identify and docs (#1329) + + Work around bug in LXD VM detection (#1325) + + Remove redundant generator logs (#1318) + + tox: set verbose flags for integration tests (#1323) [Chris Patterson] + + net: introduce find_candidate_nics() (#1313) [Chris Patterson] + + Revert "Ensure system_cfg read before ds net config on Oracle (#1174)" + (#1326) + + Add vendor_data2 support for ConfigDrive source (#1307) [cvstealth] + + Make VMWare data source test host independent and expand testing (#1308) + [Robert Schweikert] + + Add json schemas for modules starting with P + + sources/azure: remove lease file parsing (#1302) [Chris Patterson] + + remove flaky test from ci (#1322) + + ci: Switch to python 3.10 in Travis CI (#1320) + + Better interface handling for Vultr, expect unexpected DHCP servers + (#1297) [eb3095] + + Remove unused init local artifact (#1315) + + Doc cleanups (#1317) + + docs improvements (#1312) + + add support for jinja do statements, add unit test (#1314) + [Paul Bruno] (LP: #1962759) + + sources/azure: prevent tight loops for DHCP retries (#1285) + [Chris Patterson] + + net/dhcp: surface type of DHCP lease failure to caller (#1276) + [Chris Patterson] + + Stop hardcoding systemctl location (#1278) [Robert Schweikert] + + Remove python2 syntax from docs (#1310) + + [tools/migrate-lp-user-to-github] Rename master branch to main (#1301) + [Adam Collard] + + redhat: Depend on "hostname" package (#1288) [Lubomir Rintel] + + Add native NetworkManager support (#1224) [Lubomir Rintel] + + Fix link in CLA check to point to contribution guide. (#1299) + [Adam Collard] + + check for existing symlink while force creating symlink (#1281) + [Shreenidhi Shedi] + + Do not silently ignore integer uid (#1280) (LP: #1875772) + + tests: create a IPv4/IPv6 VPC in Ec2 integration tests (#1291) + + Integration test fix ppa (#1296) + + tests: on official EC2. cloud-id actually startswith aws not ec2 (#1289) + + test_ppa_source: accept both http and https URLs (#1292) + [Paride Legovini] + + Fix apt test on azure + + add "lkundrak" as contributor [Lubomir Rintel] + + Holmanb/integration test fix ppa (#1287) + + Include missing subcommand in manpage (#1279) + + Clean up artifacts from pytest, packaging, release with make clean + (#1277) + + sources/azure: ensure retries on IMDS request failure (#1271) + [Chris Patterson] + + sources/azure: removed unused savable PPS paths (#1268) [Chris Patterson] + + integration tests: fix Azure failures (#1269) + +From 22.1 + + sources/azure: report ready in local phase (#1265) [Chris Patterson] + + sources/azure: validate IMDS network configuration metadata (#1257) + [Chris Patterson] + + docs: Add more details to runcmd docs (#1266) + + use PEP 589 syntax for TypeDict (#1253) + + mypy: introduce type checking (#1254) [Chris Patterson] + + Fix extra ipv6 issues, code reduction and simplification (#1243) [eb3095] + + tests: when generating crypted password, generate in target env (#1252) + + sources/azure: address mypy/pyright typing complaints (#1245) + [Chris Patterson] + + Docs for x-shellscript* userdata (#1260) + + test_apt_security: azure platform has specific security URL overrides + (#1263) + + tests: lsblk --json output changes mountpoint key to mountpoinst [] + (#1261) + + mounts: fix mount opts string for ephemeral disk (#1250) + [Chris Patterson] + + Shell script handlers by freq (#1166) [Chris Lalos] + + minor improvements to documentation (#1259) [Mark Esler] + + cloud-id: publish /run/cloud-init/cloud-id- files (#1244) + + add "eslerm" as contributor (#1258) [Mark Esler] + + sources/azure: refactor ssh key handling (#1248) [Chris Patterson] + + bump pycloudlib (#1256) + + sources/hetzner: Use EphemeralDHCPv4 instead of static configuration + (#1251) [Markus Schade] + + bump pycloudlib version (#1255) + + Fix IPv6 netmask format for sysconfig (#1215) [Harald] (LP: #1959148) + + sources/azure: drop debug print (#1249) [Chris Patterson] + + tests: do not check instance.pull_file().ok() (#1246) + + sources/azure: consolidate ephemeral DHCP configuration (#1229) + [Chris Patterson] + + cc_salt_minion freebsd fix for rc.conf (#1236) + + sources/azure: fix metadata check in _check_if_nic_is_primary() (#1232) + [Chris Patterson] + + Add _netdev option to mount Azure ephemeral disk (#1213) [Eduardo Otubo] + + testing: stop universally overwriting /etc/cloud/cloud.cfg.d (#1237) + + Integration test changes (#1240) + + Fix Gentoo Locales (#1205) + + Add "slingamn" as contributor (#1235) [Shivaram Lingamneni] + + integration: do not LXD bind mount /etc/cloud/cloud.cfg.d (#1234) + + Integration testing docs and refactor (#1231) + + vultr: Return metadata immediately when found (#1233) [eb3095] + + spell check docs with spellintian (#1223) + + docs: include upstream python version info (#1230) + + Schema a d (#1211) + + Move LXD to end ds-identify DSLIST (#1228) (LP: #1959118) + + fix parallel tox execution (#1214) + + sources/azure: refactor _report_ready_if_needed and _poll_imds (#1222) + [Chris Patterson] + + Do not support setting up archive.canonical.com as a source (#1219) + [Steve Langasek] (LP: #1959343) + + Vultr: Fix lo being used for DHCP, try next on cmd fail (#1208) [eb3095] + + sources/azure: refactor _should_reprovision[_after_nic_attach]() logic + (#1206) [Chris Patterson] + + update ssh logs to show ssh private key gens pub and simplify code + (#1221) [Steve Weber] + + Remove mitechie from stale PR github action (#1217) + + Include POST format in cc_phone_home docs (#1218) (LP: #1959149) + + Add json parsing of ip addr show (SC-723) (#1210) + + cc_rsyslog: fix typo in docstring (#1207) [Louis Sautier] + + Update .github-cla-signers (#1204) [Chris Lalos] + + sources/azure: drop unused case in _report_failure() (#1200) + [Chris Patterson] + + sources/azure: always initialize _ephemeral_dhcp_ctx on unpickle (#1199) + [Chris Patterson] + + Add support for gentoo templates and cloud.cfg (#1179) [vteratipally] + + sources/azure: unpack ret tuple in crawl_metadata() (#1194) + [Chris Patterson] + + tests: focal caplog has whitespace indentation for multi-line logs + (#1201) + + Seek interfaces, skip dummy interface, fix region codes (#1192) [eb3095] + + integration: test against the Ubuntu daily images (#1198) + [Paride Legovini] + + cmd: status and cloud-id avoid change in behavior for 'not run' (#1197) + + tox: pass PYCLOUDLIB_* env vars into integration tests when present + (#1196) + + sources/azure: set ovf_is_accessible when OVF is read successfully + (#1193) [Chris Patterson] + + Enable OVF environment transport via ISO in example (#1195) [Megian] + + sources/azure: consolidate DHCP variants to EphemeralDHCPv4WithReporting + (#1190) [Chris Patterson] + + Single JSON schema validation in early boot (#1175) + + Add DatasourceOVF network-config propery to Ubuntu OVF example (#1184) + [Megian] + + testing: support pycloudlib config file (#1189) + + Ensure system_cfg read before ds net config on Oracle (SC-720) (#1174) + (LP: #1956788) + + Test Optimization Proposal (SC-736) (#1188) + + cli: cloud-id report not-run or disabled state as cloud-id (#1162) + + Remove distutils usage (#1177) [Shreenidhi Shedi] + + add .python-version to gitignore (#1186) + + print error if datasource import fails (#1170) + [Emanuele Giuseppe Esposito] + + Add new config module to set keyboard layout (#1176) + [maxnet] (LP: #1951593) + + sources/azure: rename metadata_type -> MetadataType (#1181) + [Chris Patterson] + + Remove 3.5 and xenial support (SC-711) (#1167) + + tests: mock LXD datasource detection in ds-identify on LXD containers + (#1178) + + pylint: silence errors on compat code for old jsonschema (#1172) + [Paride Legovini] + + testing: Add 3.10 Test Coverage (#1173) + + Remove unittests from integration test job in travis (#1141) + + Don't throw exceptions for empty cloud config (#1130) + + bsd/resolv.d/ avoid duplicated entries (#1163) [Gonéri Le Bouder] + + sources/azure: do not persist failed_desired_api_version flag (#1159) + [Chris Patterson] + + Update cc_ubuntu_advantage calls to assume-yes (#1158) + [John Chittum] (LP: #1954842) + + openbsd: properly restart the network on 7.0 (#1150) [Gonéri Le Bouder] + + Add .git-blame-ignore-revs (#1161) + + Adopt Black and isort (SC-700) (#1157) + + Include dpkg frontend lock in APT_LOCK_FILES (#1153) + + tests/cmd/query: fix test run as root and add coverage for defaults + (#1156) [Chris Patterson] (LP: #1825027) + + Schema processing changes (SC-676) (#1144) + + Add dependency workaround for impish in bddeb (#1148) + + netbsd: install new dep packages (#1151) [Gonéri Le Bouder] + + find_devs_with_openbsd: ensure we return the last entry (#1149) + [Gonéri Le Bouder] + + sources/azure: remove unnecessary hostname bounce (#1143) + [Chris Patterson] + + find_devs/openbsd: accept ISO on disk (#1132) + [Gonéri Le Bouder] + + Improve error log message when mount failed (#1140) [Ksenija Stanojevic] + + add KsenijaS as a contributor (#1145) [Ksenija Stanojevic] + + travis - don't run integration tests if no deb (#1139) + + factor out function for getting top level directory of cloudinit (#1136) + + testing: Add deterministic test id (#1138) + + mock sleep() in azure test (#1137) + + Add miraclelinux support (#1128) [Haruki TSURUMOTO] + + docs: Make MACs lowercase in network config (#1135) (LP: #1876941) + + Add Strict Metaschema Validation (#1101) + + update dead link (#1133) + + cloudinit/net: handle two different routes for the same ip (#1124) + [Emanuele Giuseppe Esposito] + + docs: pin mistune dependency (#1134) + + Reorganize unit test locations under tests/unittests (#1126) + + Fix exception when no activator found (#1129) (LP: #1948681) + + jinja: provide and document jinja-safe key aliases in instance-data + (SC-622) (#1123) + + testing: Remove date from final_message test (SC-638) (#1127) + + Move GCE metadata fetch to init-local (SC-502) (#1122) + + Fix missing metadata routes for vultr (#1125) [eb3095] + + cc_ssh_authkey_fingerprints.py: prevent duplicate messages on console + (#1081) [dermotbradley] + + sources/azure: remove unused remnants related to agent command (#1119) + [Chris Patterson] + + github: update PR template's contributing URL (#1120) [Chris Patterson] + + docs: Rename HACKING.rst to CONTRIBUTING.rst (#1118) + + testing: monkeypatch system_info call in unit tests (SC-533) (#1117) + + Fix Vultr timeout and wait values (#1113) [eb3095] + + lxd: add preference for LXD cloud-init.* config keys over user keys + (#1108) + + VMware: source /etc/network/interfaces.d/* on Debian + [chengcheng-chcheng] (LP: #1950136) + + Add cjp256 as contributor (#1109) [Chris Patterson] + + integration_tests: Ensure log directory exists before symlinking to it + (#1110) + + testing: add growpart integration test (#1104) + + integration_test: Speed up CI run time (#1111) + + Some miscellaneous integration test fixes (SC-606) (#1103) + + tests: specialize lxd_discovery test for lxd_vm vendordata (#1106) + + Add convenience symlink to integration test output (#1105) + + Fix for set-name bug in networkd renderer (#1100) + [Andrew Kutz] (LP: #1949407) + + Wait for apt lock (#1034) (LP: #1944611) + + testing: stop chef test from running on openstack (#1102) + + alpine.py: add options to the apk upgrade command (#1089) [dermotbradley] ------------------------------------------------------------------- Fri Feb 18 19:08:21 UTC 2022 - Robert Schweikert diff --git a/cloud-init.spec b/cloud-init.spec index 96321a1..3ebe829 100644 --- a/cloud-init.spec +++ b/cloud-init.spec @@ -18,7 +18,7 @@ %global configver 0.7 Name: cloud-init -Version: 21.4 +Version: 22.4 Release: 0 License: GPL-3.0 Summary: Cloud node initialization tool @@ -35,9 +35,12 @@ Patch3: cloud-init-break-resolv-symlink.patch Patch4: cloud-init-sysconf-path.patch # FIXME (lp#1860164) Patch5: cloud-init-no-tempnet-oci.patch -# FIXME https://github.com/canonical/cloud-init/pull/1278 -Patch6: cloud-init-sysctl-not-in-bin.patch -Patch7: cloud-init-vmware-test.patch +# FIXME https://github.com/canonical/cloud-init/pull/1926 +Patch6: cloud-init-btrfs-queue-resize.patch +# FIXME +Patch7: cloud-init-micro-is-suse.patch +# FIXME +Patch8: cloud-init-suse-afternm.patch BuildRequires: fdupes BuildRequires: filesystem # pkg-config is needed to find correct systemd unit dir @@ -53,10 +56,17 @@ BuildRequires: python3-PyYAML BuildRequires: python3-configobj >= 5.0.2 BuildRequires: python3-httpretty BuildRequires: python3-jsonpatch +BuildRequires: python3-jsonschema +BuildRequires: python3-mock BuildRequires: python3-netifaces BuildRequires: python3-oauthlib BuildRequires: python3-pytest +BuildRequires: python3-pytest-cov +BuildRequires: python3-pytest-mock BuildRequires: python3-requests +BuildRequires: python3-responses +BuildRequires: python3-serial +BuildRequires: system-user-nobody %if 0%{?is_opensuse} BuildRequires: openSUSE-release %else @@ -79,13 +89,17 @@ Requires: python3-oauthlib Requires: python3-pyserial Requires: python3-PyYAML Requires: python3-requests +Requires: python3-responses +Requires: python3-serial Requires: python3-setuptools Requires: python3-six Requires: python3-xml Requires: sudo Requires: util-linux Requires: wget +%if 0%{?suse_version} && 0%{?suse_version} <= 1500 Requires: wicked-service +%endif Requires: cloud-init-config = %configver BuildRoot: %{_tmppath}/%{name}-%{version}-build %define docdir %{_defaultdocdir}/%{name} @@ -134,7 +148,9 @@ Documentation and examples for cloud-init tools %patch4 %patch5 %patch6 -%patch7 -p1 +%patch7 +%patch8 + # patch in the full version to version.py version_pys=$(find . -name version.py -type f) @@ -146,8 +162,6 @@ sed -i "s,@@PACKAGED_VERSION@@,%{version}-%{release}," $version_pys python3 setup.py build %check -## Ignore test failure currently not doing anything with opennebula -rm -v tests/unittests/test_datasource/test_opennebula.py make unittest %install @@ -201,6 +215,8 @@ rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.ubuntu.* %{_bindir}/cloud-init %{_bindir}/cloud-init-per %dir %{_sysconfdir}/cloud +%dir %{_sysconfdir}/cloud/clean.d +%{_sysconfdir}/cloud/clean.d/README %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d %config(noreplace) %{_sysconfdir}/cloud/templates %{_sysconfdir}/dhcp/dhclient-exit-hooks.d/hook-dhclient @@ -236,6 +252,7 @@ rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.ubuntu.* %dir /etc/dhcp/dhclient-exit-hooks.d %dir /etc/systemd/system/sshd-keygen@.service.d + %files config-suse %defattr(-,root,root) %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg