← Back to team overview

cloud-init team mailing list archive

Release of cloud-init 24.1

 

Greetings to the cloud-init community,

Cloud-init release 24.1 is now available

The 24.1 release:
 * spanned about 5 months
 * had 27 contributors
 * welcomed commits from 6 new contributors
 * fixed 5 Launchpad issues
 * fixed 28 Github issues

Highlights:
 - added support for WSL (Windows Subsystem for Linux)
 - added support for dhcpcd
 - added experimental support for Python 3.13
 - improved behavior of `cloud-init status`
 - ec2: added support for multi NIC / IP instances
 - many improvements for cross-distro compatiblity

Breaking Changes:
 - made dhcpcd the default dhcp client
 - removed Ubuntu's ordering dependency on snapd.seeded
 - stopped adding network v2 DNS to global DNS
 - dropped support for dsa host keys

Thank you all for your contributions,

Brett Holman


 The full changelog is below:

 - fix: Don't warn on vendor directory (#4986)
 - apt: kill spawned keyboxd after gpg cmd interaction
 - tests: upgrade tests should only validate current boot log
 - net/dhcp: fix maybe_perform_dhcp_discovery check for interface=None
   [Chris Patterson]
 - doc(network-v2): fix section nesting levels
 - fix(tests): don't check for clean log on minimal image (#4965) [Cat Red]
 - fix(cc_resize): Don't warn if zpool command not found (#4969)
   (LP: #2055219)
 - feat(subp): Make invalid command warning more user-friendly (#4972)
 - docs: Remove statement about device path matching (#4966)
 - test: Fix xfail to check the dhcp client name (#4971)
 - tests: avoid console prompts when removing gpg on Noble
 - test: fix test_get_status_systemd_failure
 - fix(nocloud): smbios datasource definition
 - tests: Check that smbios seed works
 - fix: Remove hardcoded /var/lib/cloud hotplug path (#4940)
 - refactor: Refactor status.py (#4864)
 - test: Use correct lxd network-config keys (#4950)
 - test: limit temp dhcp6 changes to < NOBLE (#4942)
 - test: allow downgrades when install debs (#4941)
 - tests: on noble, expect default /etc/apt/sources.list
 - tests: lxd_vm early boot status test ordered After=systemd-remount-fs
   (#4936)
 - tests: pro integration tests supply ubuntu_advantage until pro v32
   (#4935)
 - feat(hotplug): add cmd to enable hotplug (#4821)
 - test: fix test_combined_cloud_config_json (#4925)
 - test: xfail udhcpc on azure (#4924)
 - feat: Implement the WSL datasource (#4786) [Carlos Nihelton]
 - refactor(openrc):  Improve the OpenRC files (#4916) [dermotbradley]
 - tests: use apt install instead of dpkg -i to install pkg deps
 - tests: inactive module rename ubuntu_advantage to ubuntu_pro
 - test: fix tmpdir in test_cc_apk_configure (#4914)
 - test: fix jsonschema version checking in pro test (#4915)
 - feat(dhcp): Make dhcpcd the default dhcp client (#4912)
 - feat(Alpine) cc_growpart.py: fix handling of /dev/mapper devices (#4876)
   [dermotbradley]
 - test: Retry longer in test_status.py integration test (#4910)
 - test: fix kernel override test (#4913)
 - chore: Rename sysvinit/gentoo directory to sysvinit/openrc (#4906)
   [dermotbradley]
 - doc: update ubuntu_advantage references to pro
 - chore: rename cc_ubuntu_advantage to cc_ubuntu_pro (SC-1555)
 - feat(ubuntu pro): deprecate ubuntu_pro key in favor of ubuntu_advantage
 - feat(schema): support ubuntu_pro key and deprecate ubuntu_advantage
 - test: fix verify_clean_log (#4903)
 - test: limit test_no_hotplug_triggered_by_docker to stable releases
 - tests: generalize warning Open vSwitch warning from netplan apply (#4894)
 - fix(hotplug): remove literal quotes in args
 - feat(apt): skip known /etc/apt/sources.list content
 - feat(apt): use APT deb822 source format by default
 - test(ubuntu-pro): change livepatch to esm-infra
 - doc(ec2): fix metadata urls (#4880)
 - fix: unpin jsonschema and update tests (#4882)
 - distro: add eject FreeBSD code path (#4838) [Mina Galić]
 - feat(ec2): add hotplug as a default network update event (#4799)
 - feat(ec2): support instances with repeated device-number (#4799)
 - feat(cc_install_hotplug): trigger hook on known ec2 drivers (#4799)
 - feat(ec2): support multi NIC/IP setups (#4799)
 - feat(hotplug): hook-hotplug is now POSIX shell add OpenRC init script
   [dermotbradley]
 - test: harden test_dhcp.py::test_noble_and_newer_force_client
 - test: fix test_combined_cloud_config_json (#4868)
 - feat(apport): Disable hook when disabled (#4874)
 - chore: Add pyright ignore comments (#4874)
 - bug(apport): Fix invalid typing (#4874)
 - refactor: Move general apport hook to main branch (#4874)
 - feat(bootspeed)!: cloud-config.service drop After=snapd.seeded
 - chore: update CI package build to oldest supported Ubuntu release focal
   (#4871)
 - test: fix test_cli.test_valid_userdata
 - feat: handle error when log file is empty (#4859) [Hasan]
 - test: fix test_ec2_ipv6
 - fix: Address TIOBE abstract interpretation issues (#4866)
 - feat(dhcp): Make udhcpc use same client id (#4830)
 - feat(dhcp): Support InfiniBand with dhcpcd (#4830)
 - feat(azure): Add ProvisionGuestProxyAgent OVF setting (#4860)
   [Ksenija Stanojevic]
 - test: Bring back dhcp6 integration test changes (#4855)
 - tests: add status --wait blocking test from early boot
 - tests: fix retry decorator to return the func value
 - docs: add create_hostname_file to all hostname user-data examples
   (#4727) [Cat Red]
 - fix: Fix typos (#4850) [Viktor Szépe]
 - feat(dhcpcd): Read dhcp option 245 for azure wireserver (#4835)
 - tests(dhcp): Add udhcpc client to test matrix (#4839)
 - fix: Add types to network v1 schema (#4841)
 - docs(vmware): fixed indentation on example userdata yaml (#4854)
   [Alec Warren]
 - tests: Remove invalid keyword from method call
 - fix: Handle systemctl when dbus not ready (#4842) (LP: #2046483)
 - fix(schema cli): avoid netplan validation on net-config version 1
 - tests: reduce expected reports due to dropped rightscale module
 - tests(net-config): add awareness of netplan on stable Ubuntu
 - fix(source): fix argument boundaries when parsing cmdline (#4825)
   [Gilbert Gilb's]
 - feat: fall back to cdrom_id eject if eject is not available (#4769)
   [Cat Red]
 - fix(packages/bddeb): restrict debhelper-compat to 12 in focal (#4831)
 - tests: Add kernel commandline test (#4833)
 - fix: Ensure NetworkManager renderer works without gateway (#4829)
 - test: Correct log parsing in schema test (#4832)
 - refactor: Remove cc_rightscale_userdata (#4813)
 - refactor: Replace load_file with load_binary_file to simplify typing
   (#4823)
 - refactor: Add load_text_file function to simplify typing (#4823)
 - refactor: Change variable name for consistent typing (#4823)
 - feat(dhcp): Add support for dhcpcd (#4746)
 - refactor: Remove unused networking code (#4810)
 - test: Add more DNS net tests
 - BREAKING CHANGE: Stop adding network v2 DNS to global DNS
 - doc: update DataSource.default_update_events doc (#4815)
 - chore: do not modify instance attribute (#4815)
 - test: fix mocking leaks (#4815)
 - Revert "ci: Pin pytest<8.0.0. (#4816)" (#4815)
 - test: Update tests for passlib (#4818)
 - fix(net-schema): no warn when skipping schema check on non-netplan
 - feat(SUSE): reboot marker file is written as /run/reboot-needed (#4788)
   [Robert Schweikert]
 - test: Cleanup unwanted logger setup calls (#4817)
 - refactor(cloudinit.util): Modernize error handling, add better warnings
   (#4812)
 - ci: Pin pytest<8.0.0. (#4816)
 - fix(tests): fixing KeyError on integrations tests (#4811) [Cat Red]
 - tests: integration for network schema on netplan systems (#4767)
 - feat(schema): use netplan API to validate network-config (#4767)
 - chore: define CLOUDINIT_NETPLAN_FILE static var (#4767)
 - fix: cli schema config-file option report network-config type (#4767)
 - refactor(azure): replace BrokenAzureDataSource with reportable errors
   (#4807) [Chris Patterson]
 - Fix Alpine and Mariner /etc/hosts templates (#4780) [dermotbradley]
 - tests: revert #4792 as noble images no longer return 2 (#4809) [Cat Red]
 - tests: use client fixture instead of class_client in cleantest (#4806)
 - tests: enable ds-idenitfy xfail test LXD-kvm-not-MAAS-1 (#4808)
 - fix(tests): failing integration tests due to missing ua token (#4802)
   [Cat Red]
 - Revert "Use grep for faster parsing of cloud config in ds-identify
   (#4327)"
 - tests: Demonstrate ds-identify yaml parsing broken
 - tests: add exit 2 on noble from cloud-init status (#4792)
 - fix: linkcheck for ci to ignore scaleway anchor URL (#4793)
 - feat: Update cacerts to support VMware Photon (#4763)
   [Christopher McCann]
 - fix: netplan rendering integrations tests (#4795) [Cat Red]
 - azure: remove cloud-init.log reporting via KVP (#4715) [Chris Patterson]
 - feat(Alpine): Modify ds-identify for Alpine support and add OpenRC
   init.d script (#4785) [dermotbradley]
 - doc: Add DatasourceScaleway documentation (#4773) [Louis Bouchard]
 - fix: packaged logrotate file lacks suffix on ubuntu (#4790)
 - feat(logrotate): config flexibility more backups (#4790)
 - fix(clean): stop warning when running clean command (#4761) [d1r3ct0r]
 - feat: network schema v1 strict on nic name length 15 (#4774)
 - logrotate config (#4721) [Fabian Lichtenegger-Lukas]
 - test: Enable coverage in integration tests (#4682)
 - test: Move unit test helpers to global test helpers (#4682)
 - test: Remove snapshot option from install_new_cloud_init (#4682)
 - docs: fix cloud-init single param docs (#4682)
 - Alpine: fix location of dhclient leases file (#4782) [dermotbradley]
 - test(jsonschema): Pin jsonschema version (#4781)
 - refactor(IscDhclient): discover DHCP leases at distro-provided location
   (#4683) [Phsm Qwerty]
 - feat: datasource check for WSL (#4730) [Carlos Nihelton]
 - test: Update hostname integration tests (#4744)
 - test: Add mantic and noble releases to integration tests (#4744)
 - refactor: Ensure internal DNS state same for v1 and v2 (#4756)
 - feat: Add v2 route mtu rendering to NetworkManager (#4748)
 - tests: stable ubuntu releases will not exit 2 on warnings (#4757)
 - doc(ds-identify): Describe ds-identify irrespective of distro (#4742)
 - fix: relax NetworkManager renderer rules (#4745)
 - fix: fix growpart race (#4618)
 - feat: apply global DNS to interfaces in network-manager  (#4723)
   [Florian Apolloner]
 - feat(apt): remove /etc/apt/sources.list when deb22 preferred (#4740)
 - chore: refactor schema data as enums and namedtuples (#4585)
 - feat(schema): improve CLI message on unprocessed data files (#4585)
 - fix(config): relocate /run to /var/run on BSD (canonical#4677)
   [Mina Galić]
 - fix(ds-identify): relocate /run on *BSD (#4677) [Mina Galić]
 - fix(sysvinit): make code a bit more consistent (#4677) [Mina Galić]
 - doc: Document how cloud-init is, not how it was (#4737)
 - tests: add expected exit 2 on noble from cloud-init status (#4738)
 - test(linkcheck): ignore github md and rst link headers (#4734)
 - test: Update webhook test due to removed cc_migrator module (#4726)
 - fix(ds-identify): Return code 2 is a valid result, use cached value
 - fix(cloudstack): Use parsed lease file for virtual router in cloudstack
 - fix(dhcp): Guard against FileNotFoundError and NameError exceptions
 - fix(apt_configure): disable sources.list if rendering deb822 (#4699)
   (LP: #2045086)
 - docs: Add link to contributing to docs (#4725) [Cat Red]
 - chore: remove commented code (#4722)
 - chore: Add log message when create_hostname_file key is false (#4724)
   [Cat Red]
 - fix: Correct v2 NetworkManager route rendering (#4637)
 - azure/imds: log http failures as warnings instead of info (#4714)
   [Chris Patterson]
 - fix(setup): Relocate libexec on OpenBSD (#4708) [Mina Galić]
 - feat(jinja): better jinja feedback and error catching (#4629)
   [Alec Warren]
 - test: Fix silent swallowing of unexpected subp error (#4702)
 - fix: Move cloud-final.service after time-sync.target (#4610)
   [Dave Jones] (LP: #1951639)
 - feat(log): Make logger name more useful for __init__.py
 - chore: Remove cc_migrator module (#4690)
 - fix(tests): make cmd/devel/tests work on non-GNU [Mina Galić]
 - chore: Remove cmdline from spelling list (#4670)
 - doc: Document boot status meaning (#4670)
 - doc: Set expectations for new datasources (#4670)
 - ci: Show linkcheck broken links in job output (#4670)
 - fix: Handle systemctl commands when dbus not ready (#4681)
 - dmi: Add support for OpenBSD (#4654) [Mina Galić]
 - ds-identify: fake dmidecode support on OpenBSD (#4654) [Mina Galić]
 - ds-identify: add OpenBSD support in uname (#4654) [Mina Galić]
 - refactor: Ensure '_cfg' in Init class is dict (#4674)
 - refactor: Make event scope required in stages.py (#4674)
 - refactor: Remove unused argument (#4674)
 - chore: Move from lintian to a sphinx spelling plugin (#3639)
 - fix(doc): Fix spelling errors found by sphinxcontrib-spelling (#3639)
 - ci: Add Python 3.13 (#4567)
 - Add AlexSv04047 to CLA signers file (#4671) [AlexSv04047]
 - fix(openbsd): services & build tool (#4660) [CodeBleu]
 - tests/unittests: add a new unit test for network manager net activator
   (#4672) [Ani Sinha]
 - Implement DataSourceCloudStack.get_hostname() (#4433) [Phsm Qwerty]
 - net/nm: check for presence of ifcfg files when nm connection files
   are absent (#4645) [Ani Sinha]
 - doc: Overhaul debugging documentation (#4578)
 - doc: Move dangerous commands to dev docs (#4578)
 - doc: Relocate file location docs (#4578)
 - doc: Remove the debugging page (#4578)
 - fix(util): Fix boottime to work on OpenBSD (#4667) [Mina Galić]
 - net: allow dhcp6 configuration from generate_fallback_configuration()
   [Ani Sinha]
 - net/network_manager: do not set "may-fail" to False for both ipv4 and
   ipv6 dhcp [Ani Sinha]
 - feat(subp): Measure subprocess command time (#4606)
 - fix(python3.13): Fix import error for passlib on Python 3.13 (#4669)
 - style(brpm/bddeb): add black and ruff for packages build scripts (#4666)
 - copr: remove TODO.rst from spec file
 - fix(packages/brpm): correct syntax error and typo
 - style(ruff): fix tip target
 - config: Module documentation updates (#4599)
 - refactor(subp): Remove redundant parameter 'env' (#4555)
 - refactor(subp): Remove unused parameter 'target' (#4555)
 - refactor: Remove 'target' boilerplate from cc_apt_configure (#4555)
 - refactor(subp): Re-add return type to subp() (#4555)
 - refactor(subp): Add type information to args (#4555)
 - refactor(subp): Use subprocess.DEVNULL (#4555)
 - refactor(subp): Remove parameter 'combine_capture' (#4555)
 - refactor(subp): Remove unused parameter 'status_cb' (#4555)
 - fix(cli): fix parsing of argparse subcommands (#4559)
   [Calvin Mwadime] (LP: #2040325)
 - chore!: drop support for dsa ssh hostkeys in docs and schema (#4456)
 - chore!: do not generate ssh dsa host keys (#4456) [shixuantong]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Greetings to the cloud-init community,

Cloud-init release 24.1 is now available

The 24.1 release:
 * spanned about 5 months
 * had 27 contributors
 * welcomed commits from 6 new contributors
 * fixed 5 Launchpad issues
 * fixed 28 Github issues

Highlights:
 - added support for WSL (Windows Subsystem for Linux)
 - added support for dhcpcd
 - added experimental support for Python 3.13
 - improved behavior of `cloud-init status`
 - ec2: added support for multi NIC / IP instances
 - many improvements for cross-distro compatiblity

Breaking Changes:
 - made dhcpcd the default dhcp client
 - removed Ubuntu's ordering dependency on snapd.seeded
 - stopped adding network v2 DNS to global DNS
 - dropped support for dsa host keys

Thank you all for your contributions,

Brett Holman
 

 The full changelog is below:

 - fix: Don't warn on vendor directory (#4986)
 - apt: kill spawned keyboxd after gpg cmd interaction
 - tests: upgrade tests should only validate current boot log
 - net/dhcp: fix maybe_perform_dhcp_discovery check for interface=None
   [Chris Patterson]
 - doc(network-v2): fix section nesting levels
 - fix(tests): don't check for clean log on minimal image (#4965) [Cat Red]
 - fix(cc_resize): Don't warn if zpool command not found (#4969)
   (LP: #2055219)
 - feat(subp): Make invalid command warning more user-friendly (#4972)
 - docs: Remove statement about device path matching (#4966)
 - test: Fix xfail to check the dhcp client name (#4971)
 - tests: avoid console prompts when removing gpg on Noble
 - test: fix test_get_status_systemd_failure
 - fix(nocloud): smbios datasource definition
 - tests: Check that smbios seed works
 - fix: Remove hardcoded /var/lib/cloud hotplug path (#4940)
 - refactor: Refactor status.py (#4864)
 - test: Use correct lxd network-config keys (#4950)
 - test: limit temp dhcp6 changes to < NOBLE (#4942)
 - test: allow downgrades when install debs (#4941)
 - tests: on noble, expect default /etc/apt/sources.list
 - tests: lxd_vm early boot status test ordered After=systemd-remount-fs
   (#4936)
 - tests: pro integration tests supply ubuntu_advantage until pro v32
   (#4935)
 - feat(hotplug): add cmd to enable hotplug (#4821)
 - test: fix test_combined_cloud_config_json (#4925)
 - test: xfail udhcpc on azure (#4924)
 - feat: Implement the WSL datasource (#4786) [Carlos Nihelton]
 - refactor(openrc):  Improve the OpenRC files (#4916) [dermotbradley]
 - tests: use apt install instead of dpkg -i to install pkg deps
 - tests: inactive module rename ubuntu_advantage to ubuntu_pro
 - test: fix tmpdir in test_cc_apk_configure (#4914)
 - test: fix jsonschema version checking in pro test (#4915)
 - feat(dhcp): Make dhcpcd the default dhcp client (#4912)
 - feat(Alpine) cc_growpart.py: fix handling of /dev/mapper devices (#4876)
   [dermotbradley]
 - test: Retry longer in test_status.py integration test (#4910)
 - test: fix kernel override test (#4913)
 - chore: Rename sysvinit/gentoo directory to sysvinit/openrc (#4906)
   [dermotbradley]
 - doc: update ubuntu_advantage references to pro
 - chore: rename cc_ubuntu_advantage to cc_ubuntu_pro (SC-1555)
 - feat(ubuntu pro): deprecate ubuntu_pro key in favor of ubuntu_advantage
 - feat(schema): support ubuntu_pro key and deprecate ubuntu_advantage
 - test: fix verify_clean_log (#4903)
 - test: limit test_no_hotplug_triggered_by_docker to stable releases
 - tests: generalize warning Open vSwitch warning from netplan apply (#4894)
 - fix(hotplug): remove literal quotes in args
 - feat(apt): skip known /etc/apt/sources.list content
 - feat(apt): use APT deb822 source format by default
 - test(ubuntu-pro): change livepatch to esm-infra
 - doc(ec2): fix metadata urls (#4880)
 - fix: unpin jsonschema and update tests (#4882)
 - distro: add eject FreeBSD code path (#4838) [Mina Galić]
 - feat(ec2): add hotplug as a default network update event (#4799)
 - feat(ec2): support instances with repeated device-number (#4799)
 - feat(cc_install_hotplug): trigger hook on known ec2 drivers (#4799)
 - feat(ec2): support multi NIC/IP setups (#4799)
 - feat(hotplug): hook-hotplug is now POSIX shell add OpenRC init script
   [dermotbradley]
 - test: harden test_dhcp.py::test_noble_and_newer_force_client
 - test: fix test_combined_cloud_config_json (#4868)
 - feat(apport): Disable hook when disabled (#4874)
 - chore: Add pyright ignore comments (#4874)
 - bug(apport): Fix invalid typing (#4874)
 - refactor: Move general apport hook to main branch (#4874)
 - feat(bootspeed)!: cloud-config.service drop After=snapd.seeded
 - chore: update CI package build to oldest supported Ubuntu release focal
   (#4871)
 - test: fix test_cli.test_valid_userdata
 - feat: handle error when log file is empty (#4859) [Hasan]
 - test: fix test_ec2_ipv6
 - fix: Address TIOBE abstract interpretation issues (#4866)
 - feat(dhcp): Make udhcpc use same client id (#4830)
 - feat(dhcp): Support InfiniBand with dhcpcd (#4830)
 - feat(azure): Add ProvisionGuestProxyAgent OVF setting (#4860)
   [Ksenija Stanojevic]
 - test: Bring back dhcp6 integration test changes (#4855)
 - tests: add status --wait blocking test from early boot
 - tests: fix retry decorator to return the func value
 - docs: add create_hostname_file to all hostname user-data examples
   (#4727) [Cat Red]
 - fix: Fix typos (#4850) [Viktor Szépe]
 - feat(dhcpcd): Read dhcp option 245 for azure wireserver (#4835)
 - tests(dhcp): Add udhcpc client to test matrix (#4839)
 - fix: Add types to network v1 schema (#4841)
 - docs(vmware): fixed indentation on example userdata yaml (#4854)
   [Alec Warren]
 - tests: Remove invalid keyword from method call
 - fix: Handle systemctl when dbus not ready (#4842) (LP: #2046483)
 - fix(schema cli): avoid netplan validation on net-config version 1
 - tests: reduce expected reports due to dropped rightscale module
 - tests(net-config): add awareness of netplan on stable Ubuntu
 - fix(source): fix argument boundaries when parsing cmdline (#4825)
   [Gilbert Gilb's]
 - feat: fall back to cdrom_id eject if eject is not available (#4769)
   [Cat Red]
 - fix(packages/bddeb): restrict debhelper-compat to 12 in focal (#4831)
 - tests: Add kernel commandline test (#4833)
 - fix: Ensure NetworkManager renderer works without gateway (#4829)
 - test: Correct log parsing in schema test (#4832)
 - refactor: Remove cc_rightscale_userdata (#4813)
 - refactor: Replace load_file with load_binary_file to simplify typing
   (#4823)
 - refactor: Add load_text_file function to simplify typing (#4823)
 - refactor: Change variable name for consistent typing (#4823)
 - feat(dhcp): Add support for dhcpcd (#4746)
 - refactor: Remove unused networking code (#4810)
 - test: Add more DNS net tests
 - BREAKING CHANGE: Stop adding network v2 DNS to global DNS
 - doc: update DataSource.default_update_events doc (#4815)
 - chore: do not modify instance attribute (#4815)
 - test: fix mocking leaks (#4815)
 - Revert "ci: Pin pytest<8.0.0. (#4816)" (#4815)
 - test: Update tests for passlib (#4818)
 - fix(net-schema): no warn when skipping schema check on non-netplan
 - feat(SUSE): reboot marker file is written as /run/reboot-needed (#4788)
   [Robert Schweikert]
 - test: Cleanup unwanted logger setup calls (#4817)
 - refactor(cloudinit.util): Modernize error handling, add better warnings
   (#4812)
 - ci: Pin pytest<8.0.0. (#4816)
 - fix(tests): fixing KeyError on integrations tests (#4811) [Cat Red]
 - tests: integration for network schema on netplan systems (#4767)
 - feat(schema): use netplan API to validate network-config (#4767)
 - chore: define CLOUDINIT_NETPLAN_FILE static var (#4767)
 - fix: cli schema config-file option report network-config type (#4767)
 - refactor(azure): replace BrokenAzureDataSource with reportable errors
   (#4807) [Chris Patterson]
 - Fix Alpine and Mariner /etc/hosts templates (#4780) [dermotbradley]
 - tests: revert #4792 as noble images no longer return 2 (#4809) [Cat Red]
 - tests: use client fixture instead of class_client in cleantest (#4806)
 - tests: enable ds-idenitfy xfail test LXD-kvm-not-MAAS-1 (#4808)
 - fix(tests): failing integration tests due to missing ua token (#4802)
   [Cat Red]
 - Revert "Use grep for faster parsing of cloud config in ds-identify
   (#4327)"
 - tests: Demonstrate ds-identify yaml parsing broken
 - tests: add exit 2 on noble from cloud-init status (#4792)
 - fix: linkcheck for ci to ignore scaleway anchor URL (#4793)
 - feat: Update cacerts to support VMware Photon (#4763)
   [Christopher McCann]
 - fix: netplan rendering integrations tests (#4795) [Cat Red]
 - azure: remove cloud-init.log reporting via KVP (#4715) [Chris Patterson]
 - feat(Alpine): Modify ds-identify for Alpine support and add OpenRC
   init.d script (#4785) [dermotbradley]
 - doc: Add DatasourceScaleway documentation (#4773) [Louis Bouchard]
 - fix: packaged logrotate file lacks suffix on ubuntu (#4790)
 - feat(logrotate): config flexibility more backups (#4790)
 - fix(clean): stop warning when running clean command (#4761) [d1r3ct0r]
 - feat: network schema v1 strict on nic name length 15 (#4774)
 - logrotate config (#4721) [Fabian Lichtenegger-Lukas]
 - test: Enable coverage in integration tests (#4682)
 - test: Move unit test helpers to global test helpers (#4682)
 - test: Remove snapshot option from install_new_cloud_init (#4682)
 - docs: fix cloud-init single param docs (#4682)
 - Alpine: fix location of dhclient leases file (#4782) [dermotbradley]
 - test(jsonschema): Pin jsonschema version (#4781)
 - refactor(IscDhclient): discover DHCP leases at distro-provided location
   (#4683) [Phsm Qwerty]
 - feat: datasource check for WSL (#4730) [Carlos Nihelton]
 - test: Update hostname integration tests (#4744)
 - test: Add mantic and noble releases to integration tests (#4744)
 - refactor: Ensure internal DNS state same for v1 and v2 (#4756)
 - feat: Add v2 route mtu rendering to NetworkManager (#4748)
 - tests: stable ubuntu releases will not exit 2 on warnings (#4757)
 - doc(ds-identify): Describe ds-identify irrespective of distro (#4742)
 - fix: relax NetworkManager renderer rules (#4745)
 - fix: fix growpart race (#4618)
 - feat: apply global DNS to interfaces in network-manager  (#4723)
   [Florian Apolloner]
 - feat(apt): remove /etc/apt/sources.list when deb22 preferred (#4740)
 - chore: refactor schema data as enums and namedtuples (#4585)
 - feat(schema): improve CLI message on unprocessed data files (#4585)
 - fix(config): relocate /run to /var/run on BSD (canonical#4677)
   [Mina Galić]
 - fix(ds-identify): relocate /run on *BSD (#4677) [Mina Galić]
 - fix(sysvinit): make code a bit more consistent (#4677) [Mina Galić]
 - doc: Document how cloud-init is, not how it was (#4737)
 - tests: add expected exit 2 on noble from cloud-init status (#4738)
 - test(linkcheck): ignore github md and rst link headers (#4734)
 - test: Update webhook test due to removed cc_migrator module (#4726)
 - fix(ds-identify): Return code 2 is a valid result, use cached value
 - fix(cloudstack): Use parsed lease file for virtual router in cloudstack
 - fix(dhcp): Guard against FileNotFoundError and NameError exceptions
 - fix(apt_configure): disable sources.list if rendering deb822 (#4699)
   (LP: #2045086)
 - docs: Add link to contributing to docs (#4725) [Cat Red]
 - chore: remove commented code (#4722)
 - chore: Add log message when create_hostname_file key is false (#4724)
   [Cat Red]
 - fix: Correct v2 NetworkManager route rendering (#4637)
 - azure/imds: log http failures as warnings instead of info (#4714)
   [Chris Patterson]
 - fix(setup): Relocate libexec on OpenBSD (#4708) [Mina Galić]
 - feat(jinja): better jinja feedback and error catching (#4629)
   [Alec Warren]
 - test: Fix silent swallowing of unexpected subp error (#4702)
 - fix: Move cloud-final.service after time-sync.target (#4610)
   [Dave Jones] (LP: #1951639)
 - feat(log): Make logger name more useful for __init__.py
 - chore: Remove cc_migrator module (#4690)
 - fix(tests): make cmd/devel/tests work on non-GNU [Mina Galić]
 - chore: Remove cmdline from spelling list (#4670)
 - doc: Document boot status meaning (#4670)
 - doc: Set expectations for new datasources (#4670)
 - ci: Show linkcheck broken links in job output (#4670)
 - fix: Handle systemctl commands when dbus not ready (#4681)
 - dmi: Add support for OpenBSD (#4654) [Mina Galić]
 - ds-identify: fake dmidecode support on OpenBSD (#4654) [Mina Galić]
 - ds-identify: add OpenBSD support in uname (#4654) [Mina Galić]
 - refactor: Ensure '_cfg' in Init class is dict (#4674)
 - refactor: Make event scope required in stages.py (#4674)
 - refactor: Remove unused argument (#4674)
 - chore: Move from lintian to a sphinx spelling plugin (#3639)
 - fix(doc): Fix spelling errors found by sphinxcontrib-spelling (#3639)
 - ci: Add Python 3.13 (#4567)
 - Add AlexSv04047 to CLA signers file (#4671) [AlexSv04047]
 - fix(openbsd): services & build tool (#4660) [CodeBleu]
 - tests/unittests: add a new unit test for network manager net activator
   (#4672) [Ani Sinha]
 - Implement DataSourceCloudStack.get_hostname() (#4433) [Phsm Qwerty]
 - net/nm: check for presence of ifcfg files when nm connection files
   are absent (#4645) [Ani Sinha]
 - doc: Overhaul debugging documentation (#4578)
 - doc: Move dangerous commands to dev docs (#4578)
 - doc: Relocate file location docs (#4578)
 - doc: Remove the debugging page (#4578)
 - fix(util): Fix boottime to work on OpenBSD (#4667) [Mina Galić]
 - net: allow dhcp6 configuration from generate_fallback_configuration()
   [Ani Sinha]
 - net/network_manager: do not set "may-fail" to False for both ipv4 and
   ipv6 dhcp [Ani Sinha]
 - feat(subp): Measure subprocess command time (#4606)
 - fix(python3.13): Fix import error for passlib on Python 3.13 (#4669)
 - style(brpm/bddeb): add black and ruff for packages build scripts (#4666)
 - copr: remove TODO.rst from spec file
 - fix(packages/brpm): correct syntax error and typo
 - style(ruff): fix tip target
 - config: Module documentation updates (#4599)
 - refactor(subp): Remove redundant parameter 'env' (#4555)
 - refactor(subp): Remove unused parameter 'target' (#4555)
 - refactor: Remove 'target' boilerplate from cc_apt_configure (#4555)
 - refactor(subp): Re-add return type to subp() (#4555)
 - refactor(subp): Add type information to args (#4555)
 - refactor(subp): Use subprocess.DEVNULL (#4555)
 - refactor(subp): Remove parameter 'combine_capture' (#4555)
 - refactor(subp): Remove unused parameter 'status_cb' (#4555)
 - fix(cli): fix parsing of argparse subcommands (#4559)
   [Calvin Mwadime] (LP: #2040325)
 - chore!: drop support for dsa ssh hostkeys in docs and schema (#4456)
 - chore!: do not generate ssh dsa host keys (#4456) [shixuantong]

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEOj7zTf3ts7fz/fYD+D93EppevYUFAmXhPy4ACgkQ+D93Eppe
vYWYlQ/8CNR+e/vzGP1/CK6medZgYVDsbz3aoPNgwbdrOOpz18lm8CYvc5w49Ab5
nFxwFdQBt+4tMCfVpyLF48p/92JPYlvY1GytTME7ALXsp2YUFu6T0NYhRYiDy9yL
T6CG6C/eXfBhLM200bOUbWhAyHAHDkwzVavQB6ZVf4hbq5RDd8zDOGsah4eu6eZF
a/dJvNfPs344icIQHNNX1iVtWq6VYdXaGvX2C5M5AbiQjXYClZsoRJAxLOQIFk4f
QkiDcS6L3uoRF9LKpXQObQAgek2FppXE1EBBRRTgpOjtYaMwb4XHelNhyNWSExe3
By2H494aG904L8tnF6jb5AKA47biyqI8Zp/vxZCI3KkQdDgHNyJKtEAXE+7VPfqy
RZtMK1VsxrO2vKzEp5FJ/ySzDqkN/GiEqwLJzBjhD72pr4veV2rtGi9uGy2Lbtxy
E0mniuelu3ptKwIA8DzViu1gepGlDv0Rz4M8ZxdVxJC7HgbF+H1R/SnP5kLQQz6Y
nEY8VhdmRs5yYupXXeHSbL3vCtNm5W6Yi3ntIYwM6UpnfN5T6VhYPoGuYYymOWq8
5bvxgZqiDueKubYmvUk7yc4o/S2Mm6nAqfWJdhPdFBFfv6GtSQfeXhDkLNaldmTI
IkSDNh93ncSB2Y6gok+HrBMWs5itKy6xua9fCjnrv71Y9mg9G9M=
=CdC4
-----END PGP SIGNATURE-----