Release of cloud-init 23.1

Cloud-init release 23.1 is now available

The 23.1 release:

  • spanned about 3 months
  • had 29 contributors
  • fixed 20 Launchpad issues

Highlights:

Behavior changes:

  • cc_ca_certs: write certificates as individual files
  • cc_puppet: Update puppet service name
  • cc_resize_fs: use btrfs enqueue when available
  • cc_set_hostname: ignore /var/lib/cloud/data/set-hostname if it’s empty
  • cc_ssh: support multiple hostcertificates
  • cc_write_files: set ownership for new folders
  • cli/schema: also validate vendordata
  • machine-id: set to uninitialized to trigger regeneration on clones
  • sources/azure: fix device driver matching for net config
  • network/netplan:
    • keep custom strict perms when 50-cloud-init.yaml exists
    • config root read-only as wifi config can contain creds
    • add gateways as on-link when necessary

New Features:

  • distros/freebsd: add support for static IPv6 addresses
  • distros/suse: support transactional-update
  • networkd: add support for multiple [Route] sections
  • sources/nocloud: add support for dmi variable expansion for seedfrom URL
  • sources/openstack: add Support for IPv6 metadata to OpenStack
  • sources/aliyun: add support for metadata security harden mode
  • Add TencentOS support
  • doc: deprecation generation support

== Changelog ==

  • Support transactional-updates for SUSE based distros (#1997)
    [Robert Schweikert]
  • Set ownership for new folders in Write Files Module (#1980)
    [Jack] (LP: #1990513)
  • add OpenCloudOS and TencentOS support (#1964) [wynnfeng]
  • lxd: Retry if the server isn’t ready (#2025)
  • test: switch pycloudlib source to pypi (#2024)
  • test: Fix integration test deprecation message (#2023)
  • Recognize opensuse-microos, dev tooling fixes [Robert Schweikert]
  • sources/azure: refactor imds handler into own module (#1977)
    [Chris Patterson]
  • docs: deprecation generation support [1/2] (#2013)
  • add function is_virtual to distro/FreeBSD (#1957) [Mina Galić]
  • cc_ssh: support multiple hostcertificates (#2018) (LP: #1999164)
  • Fix minor schema validation regression and fixup typing (#2017)
  • doc: Reword user data debug section (#2019)
  • Overhaul/rewrite of certificate handling as follows: (#1962)
    [dermotbradley] (LP: #1931174)
  • disk_setup: use byte string when purging the partition table (#2012)
    [Stefan Prietl]
  • cli: schema also validate vendordata*.
  • ci: sort and add checks for cla signers file [Stefan Prietl]
  • Add “ederst” as contributor (#2010) [Stefan Prietl]
  • readme: add reference to packages dir (#2001)
  • docs: update downstream package list (#2002)
  • docs: add google search verification (#2000) [s-makin]
  • docs: fix 404 render use default notfound_urls_prefix in RTD conf (#2004)
  • Fix OpenStack datasource detection on bare metal (#1923)
    [Alexander Birkner] (LP: #1815990)
  • docs: add themed RTD 404 page and pointer to readthedocs-hosted (#1993)
  • schema: fix gpt labels, use type string for GUID (#1995)
  • cc_disk_setup: code cleanup (#1996)
  • netplan: keep custom strict perms when 50-cloud-init.yaml exists
  • cloud-id: better handling of change in datasource files
    [d1r3ct0r] (LP: #1998998)
  • tests: Remove restart check from test
  • Ignore duplicate macs from mscc_felix and fsl_enetc (LP: #1997922)
  • Warn on empty network key (#1990)
  • Fix Vultr cloud_interfaces usage (#1986) [eb3095]
  • cc_puppet: Update puppet service name (#1970) [d1r3ct0r] (LP: #2002969)
  • docs: Clarify networking docs (#1987)
  • lint: remove httpretty (#1985) [sxt1001]
  • cc_set_passwords: Prevent traceback when restarting ssh (#1981)
  • tests: fix lp1912844 (#1978)
  • tests: Skip ansible test on bionic (#1984)
  • Wait for NetworkManager (#1983) [Robert Schweikert]
  • docs: minor polishing (#1979) [s-makin]
  • CI: migrate integration-test to GH actions (#1969)
  • Fix permission of SSH host keys (#1971) [Ron Gebauer]
  • Fix default route rendering on v2 ipv6 (#1973) (LP: #2003562)
  • doc: fix path in net_convert command (#1975)
  • docs: update net_convert docs (#1974)
  • doc: fix dead link
  • cc_set_hostname: ignore /var/lib/cloud/data/set-hostname if it’s empty
    (#1967) [Emanuele Giuseppe Esposito]
  • distros/rhel.py: _read_hostname() missing strip on “hostname” (#1941)
    [Mark Mielke]
  • integration tests: add IBM VPC support (SC-1352) (#1915)
  • machine-id: set to uninitialized to trigger regeneration on clones
    (LP: #1999680)
  • sources/azure: retry on connection error when fetching metdata (#1968)
    [Chris Patterson]
  • Ensure ssh state accurately obtained (#1966)
  • bddeb: drop dh-systemd dependency on newer deb-based releases [d1r3ct0r]
  • doc: fix config formats link in cloudsigma.rst (#1960)
  • Fix wrong subp syntax in cc_set_passwords.py (#1961)
  • docs: update the PR template link to readthedocs (#1958) [d1r3ct0r]
  • ci: switch unittests to gh actions (#1956)
  • Add mount_default_fields for PhotonOS. (#1952) [Shreenidhi Shedi]
  • sources/azure: minor refactor for metadata source detection logic
    (#1936) [Chris Patterson]
  • add “CalvoM” as contributor (#1955) [d1r3ct0r]
  • ci: doc to gh actions (#1951)
  • lxd: handle 404 from missing devices route for LXD 4.0 (LP: #2001737)
  • docs: Diataxis overhaul (#1933) [s-makin]
  • vultr: Fix issue regarding cache and region codes (#1938) [eb3095]
  • cc_set_passwords: Move ssh status checking later (SC-1368) (#1909)
    (LP: #1998526)
  • Improve Wireguard module idempotency (#1940) [Fabian Lichtenegger-Lukas]
  • network/netplan: add gateways as on-link when necessary (#1931)
    [Louis Sautier] (LP: #2000596)
  • tests: test_lxd assert features.networks.zones when present (#1939)
  • Use btrfs enquque when available (#1926) [Robert Schweikert]
  • sources/azure: drop description for report_failure_to_fabric() (#1934)
    [Chris Patterson]
  • cc_disk_setup.py: fix MBR single partition creation (#1932)
    [dermotbradley] (LP: #1851438)
  • Fix typo with package_update/package_upgrade (#1927) [eb3095]
  • sources/azure: fix device driver matching for net config (#1914)
    [Chris Patterson]
  • BSD: fix duplicate macs in Ifconfig parser (#1917) [Mina Galić]
  • test: mock dns calls (#1922)
  • pycloudlib: add lunar support for integration tests (#1928)
  • nocloud: add support for dmi variable expansion for seedfrom URL
    (LP: #1994980)
  • tools: read-version drop extra call to git describe --long
  • doc: improve cc_write_files doc (#1916)
  • read-version: When insufficient tags, use cloudinit.version.get_version
  • mounts: document weird prefix in schema (#1913)
  • add utility function test cases (#1910) [sxt1001]
  • test: mock file deletion in dhcp tests (#1911)
  • Ensure network ready before cloud-init service runs on RHEL (#1893)
    (LP: #1998655)
  • docs: add copy button to code blocks (#1890) [s-makin]
  • netplan: define features.NETPLAN_CONFIG_ROOT_READ_ONLY flag
  • azure: fix support for systems without az command installed (#1908)
  • Networking Clarification (#1892)
  • Fix the distro.osfamily output problem in the openEuler system. (#1895)
    [sxt1001] (LP: #1999042)
  • pycloudlib: bump commit dropping azure api smoke test
    • net: netplan config root read-only as wifi config can contain creds
  • autoinstall: clarify docs for users
  • sources/azure: encode health report as utf-8 (#1897) [Chris Patterson]
  • Add back gateway4/6 deprecation to docs (#1898)
  • networkd: Add support for multiple [Route] sections (#1868)
    [Nigel Kukard]
  • doc: add qemu tutorial (#1863)
  • lint: fix tip-flake8 and tip-mypy (#1896)
  • Add support for setting uid when creating users on FreeBSD (#1888)
    [einsibjarni]
  • Fix exception in BSD networking code-path (#1894) [Mina Galić]
  • Append derivatives to is_rhel list in cloud.cfg.tmpl (#1887) [Louis Abel]
  • FreeBSD init: use cloudinit_enable as only rcvar (#1875) [Mina Galić]
  • feat: add support aliyun metadata security harden mode (#1865)
    [Manasseh Zhou]
  • docs: uprate analyze to performance page [s-makin]
  • test: fix lxd preseed managed network config (#1881)
  • Add support for static IPv6 addresses for FreeBSD (#1839) [einsibjarni]
  • Make 3.12 failures not fail the build (#1873)
  • Docs: adding relative links [s-makin]
  • Update read-version
  • Fix setup.py to align with PEP 440 versioning replacing trailing
  • travis: promote 3.11-dev to 3.11 (#1866)
  • test_cloud_sigma: delete useless test (#1828) [sxt1001]
  • Add “nkukard” as contributor (#1864) [Nigel Kukard]
  • tests: ds-id mocks for vmware-rpctool as utility may not exist in env
  • doc: add how to render new module doc (#1855)
  • doc: improve module creation explanation (#1851)
  • Add Support for IPv6 metadata to OpenStack (#1805)
    [Marvin Vogt] (LP: #1906849)
  • add xiaoge1001 to .github-cla-signers (#1854) [sxt1001]
  • network: Deprecate gateway{4,6} keys in network config v2 (#1794)
    (LP: #1992512)
  • VMware: Move Guest Customization transport from OVF to VMware (#1573)
    [PengpengSun]
  • doc: home page links added (#1852) [s-makin]