2024-07-03 02:25:08 |
Chad Smith |
bug |
|
|
added bug |
2024-07-03 20:34:16 |
Chad Smith |
description |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
* <TODO-PRIOR-TO-PROPOSED>: Create list with LP: # included>
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
<TODO-PRIOR-TO-PROPOSED: other background if applicable>
== End SRU Template ==
<TODO-PRIOR-TO-PROPOSED: Paste in change log entry> |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
== End SRU Template ==
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984) |
|
2024-07-03 20:37:43 |
Chad Smith |
description |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
== End SRU Template ==
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984) |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
== End SRU Template ==
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984) |
|
2024-07-03 20:38:57 |
Chad Smith |
nominated for series |
|
Ubuntu Noble |
|
2024-07-03 20:38:57 |
Chad Smith |
bug task added |
|
cloud-init (Ubuntu Noble) |
|
2024-07-03 20:38:57 |
Chad Smith |
nominated for series |
|
Ubuntu Jammy |
|
2024-07-03 20:38:57 |
Chad Smith |
bug task added |
|
cloud-init (Ubuntu Jammy) |
|
2024-07-03 20:38:57 |
Chad Smith |
nominated for series |
|
Ubuntu Focal |
|
2024-07-03 20:38:57 |
Chad Smith |
bug task added |
|
cloud-init (Ubuntu Focal) |
|
2024-07-03 20:40:50 |
Chad Smith |
description |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
== End SRU Template ==
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984) |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
[ChangeLog]
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984)
== End SRU Template == |
|
2024-07-03 20:59:01 |
Chad Smith |
description |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
[ChangeLog]
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984)
== End SRU Template == |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop all debian/cpick-* patches now included due to pulling all commits from upstream
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
[ChangeLog]
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984)
== End SRU Template == |
|
2024-07-03 21:05:34 |
Chad Smith |
description |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop all debian/cpick-* patches now included due to pulling all commits from upstream
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
[ChangeLog]
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984)
== End SRU Template == |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop all debian/cpick-* patches now included due to pulling all commits from upstream
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
- Focal-only: redact unsupported ConditionEnvironment config from hotplug units. systemd in focal doesn't support this key anyway which results in a warning log in journalctl.
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
[ChangeLog]
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984)
== End SRU Template == |
|
2024-07-03 21:14:40 |
Chad Smith |
description |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop all debian/cpick-* patches now included due to pulling all commits from upstream
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
- Focal-only: redact unsupported ConditionEnvironment config from hotplug units. systemd in focal doesn't support this key anyway which results in a warning log in journalctl.
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
[ChangeLog]
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984)
== End SRU Template == |
== Begin SRU Template ==
[Impact]
This release sports both bug-fixes and new features and we would like to
make sure all of our supported customers have access to these
improvements. The notable ones are:
- feat: Add support for FTP and FTP over TLS (#4834)
- feature(schema): add networkv2 schema (#4892)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
- feat: Use NetworkManager renderer by default in RHEL family
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix: Make DataSourceOracle more resilient to early network issues (LP: #2056194)
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
Downstream Packaging changes:
- downstream ubuntu packaging will now pin a feature DEPRECATION_INFO_BOUNDARY to match the first version of cloud-init released on each series. This boundary gates whether cloud-init will raise only INFO level logs or DEPRECATED logs (which result in an exit 2 on cloud-init status) based on whether the defined deprecation_version defined for each key in json schema.
- drop all debian/cpick-* patches now included due to pulling all commits from upstream
- drop package dependency on netifaces
- logrotate config added
- enable WSL datasource for discovery
- shuffle common logic for apport out of debian/apport-general-hook.py and into the main repo to get better test coverage.
- drop now unnecessary d/p/do-not-block-user-login.patch because upstream systemd ordering now aligns with previous downstream unit ordering
- Focal-only: redact unsupported ConditionEnvironment config from hotplug units. systemd in focal doesn't support this key anyway which results in a warning log in journalctl.
NOTE: This config setting was a supplemental gate in systemd units to prevent the individual units from being loaded in boot target if the environment provides "KERNEL_CMDLINE=cloud-init=disabled" and was only provided as a short-circuit to ds-identify which also checks for KERNEL_CMDLINE in /proc/cmdline during systemd generator timeframe to disable loading cloud-init systemd units.
This allows stable releases to retain original behavior for keys which are recently deprecated in a newer version of cloud-init.
The feature.DEPRECATION_INFO_BOUNDARY for each targeted series:
- focal: 20.1
- jammy: 22.1
- noble: 24.1
See the changelog entry below for a full list of changes and bugs.
[Test Case]
The following development and SRU process was followed:
https://wiki.ubuntu.com/CloudinitUpdates
The cloud-init team will be in charge of attaching the artifacts and
console output of the appropriate run to the bug. cloud-init team
members will not mark ‘verification-done’ until this has happened.
* Automated Test Results
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with lxd artifacts>
<TODO-SRU-VERIFICATION: attach automated cloud-init-proposed test artifacts from tests for each release with kvm artifacts>
<TODO-SRU-VERIFICATION: attach automated curtin vmtest with cloud-init proposed>
<TODO-SRU-VERIFICATION: attach Solutions Testing team test results for each LTS>
* Manual Test Results
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on ec2 datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on gce datasource>
<TODO-SRU-VERIFICATION: attach manual cloud-init-proposed test artifacts from tests for each release on azure datasource>
[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.
[Discussion]
- Given that this SRU packaging is touching systemd unit ordering we want an additional manual test performed to validate/assert that there is not a degradation to time to SSH and perceived boot time. This can likely be performed in KVM to aensure a clean boot scenario with and without cloud-init 24.2 installed in the base image.
[ChangeLog]
24.2
- test: Fix no default user in test_status.py (#5478)
- fix: correct deprecated_version=22.2 for users.sudo
- test: Add jsonschema guard in test_cc_ubuntu_pro.py (#5479)
- fix(test): Fix pycloudlib types in integration tests (#5350)
- fix(test): Fix ip printing for non-lxd instances (#5350)
- chore(mypy): Drop unused missing import exclusions (#5350)
- type: Add stub types for network v1/v2 config (#5350)
- chore: Auto-format network jsonschema in ci (#5350)
- fix(tox): Update tox.ini (#5350)
- chore(typing): Remove type ignores and casts (#5350)
- refactor(typing): Remove unused code paths (#5350)
- fix(typing): Add / update type annotations (#5350)
- fix(typing): Remove type annotation for unused variable (#5350)
- fix(typing): Remove invalid type annotations (#5350)
- ci(mypy): Set default follow_imports value (#5350)
- test: Update integration tests to pass on focal (#5476)
- tests: update ubuntu_pro test to account for info-level deprecations
(#5475)
- tests: update nocloud deprecation test for boundary version (#5474)
- fix(rh_subscription): add string type to org (#5453)
- tests: integration tests aware of features.DEPRECATION_INFO_BOUNDARY
- tests: update keyserver PPA key fur curtin-dev (#5472)
- test: Fix deprecation test failures (#5466)
- chore: fix schema.py formatting (#5465)
- fix: dont double-log deprecated INFOs (#5465)
- fix(test): Mock version boundary (#5464)
- fix(schema): Don't report changed keys as deprecated (#5464)
- test: fix unit test openstack vlan mac_address (#5367)
- fix: Ensure properties for bonded interfaces are properly translated
(#5367) [Curt Moore]
- fix(schema): permit deprecated hyphenated keys under users key (#5456)
- fix: Do not add the vlan_mac_address field into the VLAN object (#5365)
[Curt Moore]
- doc(refactor): Convert module docs to new system (#5427) [Sally]
- test: Add unit tests for features.DEPRECATION_INFO_BOUNDARY (#5411)
- feat: Add deprecation boundary support to schema validator (#5411)
- feat: Add deprecation boundary to logger (#5411)
- fix: Gracefully handle missing files (#5397) [Curt Moore]
- test(openstack): Test bond mac address (#5369)
- fix(openstack): Fix bond mac_address (#5369) [Curt Moore]
- test: Add ds-identify integration test coverage (#5394)
- chore(cmdline): Update comments (#5458)
- fix: Add get_connection_with_tls_context() for requests 2.32.2+ (#5435)
[eaglegai]
- fix(net): klibc ipconfig PROTO compatibility (#5437)
[Alexsander de Souza] (LP: #2065787)
- Support metalink in yum repository config (#5444) [Ani Sinha]
- tests: hard-code curtin-dev ppa instead of canonical-kernel-team (#5450)
- ci: PR update checklist GH- anchors to align w/ later template (#5449)
- test: update validate error message in test_networking (#5436)
- ci: Add PR checklist (#5446)
- chore: fix W0105 in t/u/s/h/test_netlink.py (#5409)
- chore(pyproject.toml): migrate to booleans (#5409)
- typing: add check_untyped_defs (#5409)
- fix(openstack): Append interface / scope_id for IPv6 link-local metadata
address (#5419) [Christian Rohmann]
- test: Update validation error in test_cli.py test (#5430)
- test: Update schema validation error in integration test (#5429)
- test: bump pycloudlib to get azure oracular images (#5428)
- fix(azure): fix discrepancy for monotonic() vs time() (#5420)
[Chris Patterson]
- fix(pytest): Fix broken pytest gdb flag (#5415)
- fix: Use monotonic time (#5423)
- docs: Remove mention of resolv.conf (#5424)
- perf(netplan): Improve network v1 -> network v2 performance (#5391)
- perf(set_passwords): Run module in Network stage (#5395)
- fix(test): Remove temporary directory side effect (#5416)
- Improve schema validator warning messages (#5404) [Ani Sinha]
- feat(sysconfig): Add DNS from interface config to resolv.conf (#5401)
[Ani Sinha]
- typing: add no_implicit_optional lint (#5408)
- doc: update examples to reflect alternative ways to provide `sudo`
option (#5418) [Ani Sinha]
- fix(jsonschema): Add missing sudo definition (#5418)
- chore(doc): migrate cc modules i through r to templates (#5313)
- chore(doc): migrate grub_dpkg to tmpl add changed/deprecation (#5313)
- chore(json): migrate cc_apt_configure and json schema indents (#5313)
- chore(doc): migrate ca_certs/chef to template, flatten schema (#5313)
- chore(doc): migrate cc_byobu to templates (#5313)
- chore(doc): migrate cc_bootcmd to templates (#5313)
- fix(apt): Enable calling apt update multiple times (#5230)
- chore(VMware): Modify section of instance-id in the customization config
(#5356) [PengpengSun]
- fix(treewide): Remove dead code (#5332) [Shreenidhi Shedi]
- doc: network-config v2 ethernets are of type object (#5381) [Malte Poll]
- Release 24.1.7 (#5375)
- fix(azure): url_helper: specify User-Agent when using headers_cb with
readurl() (#5298) [Ksenija Stanojevic]
- fix: Stop attempting to resize ZFS in cc_growpart on Linux (#5370)
- doc: update docs adding YAML 1.1 spec and jinja template references
- fix(final_message): do not warn on datasourcenone when single ds
- fix(growpart): correct growpart log message to include value of mode
- feat(hotplug): disable hotplugd.socket (#5058)
- feat(hotlug): trigger hotplug after cloud-init.service (#5058)
- test: add function to push and enable systemd units (#5058)
- test(util): fix wait_until_cloud_init exit code 2 (#5058)
- test(hotplug): fix race getting ipv6 (#5271)
- docs: Adjust CSS to increase font weight across the docs (#5363) [Sally]
- fix(ec2): Correctly identify netplan renderer (#5361)
- tests: fix expect logging from growpart on devent with partition (#5360)
- test: Add v2 test coverage to test_net.py (#5247)
- refactor: Simplify collect_logs() in logs.py (#5268)
- fix: Ensure no subp from logs.py import (#5268)
- tests: fix integration tests for ubuntu pro 32.3 release (#5351)
- tests: add oracular's hello package for pkg upgrade test (#5354)
- growpart: Fix behaviour for ZFS datasets (#5169) [Mina Galić]
- device_part_info: do not recurse if we did not match anything (#5169)
[Mina Galić]
- feat(alpine): add support for Busybox adduser/addgroup (#5176)
[dermotbradley]
- ci: Move lint tip and py3-dev jobs to daily (#5347)
- fix(netplan): treat netplan warnings on stderr as debug for cloud-init
(#5348)
- feat(disk_setup): Add support for nvme devices (#5263)
- fix(log): Do not warn when doing requested operation (#5263)
- Support sudoers in the "/usr/usr merge" location (#5161)
[Robert Schweikert]
- doc(nocloud): Document network-config file (#5204)
- fix(netplan): Fix predictable interface rename issue (#5339)
- cleanup: Don't execute code on import (#5295)
- fix(net): Make duplicate route add succeed. (#5343)
- fix(freebsd): correct configuration of IPv6 routes (#5291) [Théo Bertin]
- fix(azure): disable use-dns for secondary nics (#5314)
- chore: fix lint failure (#5320)
- Update pylint version to support python 3.12 (#5338) [Ani Sinha]
- fix(tests): use regex to avoid focal whitespace in jinja debug test
(#5335)
- chore: Add docstrings and types to Version class (#5262)
- ci(mypy): add type-jinja2 stubs (#5337)
- tests(alpine): github trust lxc mounted source dir cloud-init-ro (#5329)
- test: Add oracular release to integration tests (#5328)
- Release 24.1.6 (#5326)
- test: Fix failing test_ec2.py test (#5324)
- fix: Check renderer for netplan-specific code (#5321)
- docs: Removal of top-level --file breaking change (#5308)
- fix: typo correction of delaycompress (#5317)
- docs: Renderers/Activators have downstream overrides (#5322)
- fix(ec2): Ensure metadata exists before configuring PBR (#5287)
- fix(lxd): Properly handle unicode from LXD socket (#5309)
- docs: Prefer "artifact" over "artefact" (#5311) [Arthur Le Maitre]
- chore(doc): migrate cc_byobu to templates
- chore(doc): migrate cc_bootcmd to templates
- chore(doc): migrate apt_pipelining and apk_configure to templates
- tests: in_place mount module-docs into lxd vm/container
- feat(docs): generate rtd module schema from rtd/module-docs
- feat: Set RH ssh key permissions when no 'ssh_keys' group (#5296)
[Ani Sinha]
- test: Avoid circular import in Azure tests (#5280)
- test: Fix test_failing_userdata_modules_exit_codes (#5279)
- chore: Remove CPY check from ruff (#5281)
- chore: Clean up docstrings
- chore(ruff): Bump to version 0.4.3
- feat(systemd): Improve AlmaLinux OS and CloudLinux OS support (#5265)
[Elkhan Mammadli]
- feat(ca_certs): Add AlmaLinux OS and CloudLinux OS support (#5264)
[Elkhan Mammadli]
- docs: cc_apt_pipelining docstring typo fix (#5273) [Alex Ratner]
- feat(azure): add request identifier to IMDS requests (#5218)
[Ksenija Stanojevic]
- test: Fix TestFTP integration test (#5237) [d1r3ct0r]
- feat(ifconfig): prepare for CIDR output (#5272) [Mina Galić]
- fix: stop manually dropping dhcp6 key in integration test (#5267)
[Alec Warren]
- test: Remove some CiTestCase tests (#5256)
- fix: Warn when signal is handled (#5186)
- fix(snapd): ubuntu do not snap refresh when snap absent (LP: #2064300)
- feat(landscape-client): handle already registered client (#4784)
[Fabian Lichtenegger-Lukas]
- doc: Show how to debug external services blocking cloud-init (#5255)
- fix(pdb): Enable running cloud-init under pdb (#5217)
- chore: Update systemd description (#5250)
- fix(time): Harden cloud-init to system clock changes
- fix: Update analyze timestamp uptime
- fix(schema): no network validation on netplan systems without API
- fix(mount): Don't run cloud-init.service if cloud-init disabled (#5226)
- fix(ntp): Fix AlmaLinux OS and CloudLinux OS support (#5235)
[Elkhan Mammadli]
- tests: force version of cloud-init from PPA regardless of version (#5251)
- ci: Print isort diff (#5242)
- test: Fix integration test dependencies (#5248)
- fix(ec2): Fix broken uuid match with other-endianness (#5236)
- fix(schema): allow networkv2 schema without top-level key (#5239)
[Cat Red]
- fix(cmd): Do not hardcode reboot command (#5208)
- test: Run Alpine tests without network (#5220)
- docs: Add base config reference from explanation (#5241)
- docs: Remove preview from WSL tutorial (#5225)
- chore: Remove broken maas code (#5219)
- feat(WSL): Add support for Ubuntu Pro configs (#5116) [Ash]
- chore: sync ChangeLog and version.py from 24.1.x (#5228)
- bug(package_update): avoid snap refresh in images without snap command
(LP: #2064132)
- ci: Skip package build on tox runs (#5210)
- chore: Fix test skip message
- test(ec2): adopt pycloudlib public ip creation while launching instances
- test(ec2): add ipv6 testing for multi-nic instances
- test(ec2): adopt pycloudlib enable_ipv6 while launching instances
- feat: tool to print diff between netplan and networkv2 schema (#5200)
[Cat Red]
- test: mock internet access in test_upgrade (#5212)
- ci: Add timezone for alpine unit tests (#5216)
- fix: Ensure dump timestamps parsed as UTC (#5214)
- docs: Add WSL tutorial (#5206)
- feature(schema): add networkv2 schema (#4892) [Cat Red]
- Add alpine unittests to ci (#5121)
- test: Fix invalid openstack datasource name (#4905)
- test: Fix MAAS test and mark xfail (#4905)
- chore(ds-identify): Update shellcheck ignores (#4905)
- fix(ds-identify): Prevent various false positives and false negatives
(#4905)
- Use grep for faster parsing of cloud config in ds-identify (#4905)
[Scott Moser] (LP: #2030729)
- tests: validate netplan API YAML instead of strict content (#5195)
- chore(templates): update ubuntu universe wording (#5199)
- Deprecate the users ssh-authorized-keys property (#5162)
[Anders Björklund]
- doc(nocloud): Describe ftp and ftp over tls implementation (#5193)
- feat(net): provide network config to netplan.State for render (#4981)
- docs: Add breaking datasource identification changes (#5171)
- fix(openbsd): Update build-on-openbsd python dependencies (#5172)
[Hyacinthe Cartiaux]
- fix: Add subnet ipv4/ipv6 to network schema (#5191)
- docs: Add deprecated system_info to schema (#5168)
- docs: Add DataSourceNone documentation (#5165)
- test: Skip test if console log is None (#5188)
- fix(dhcp): Enable interactively running cloud-init init --local (#5166)
- test: Update message for netplan apply dbus issue
- test: install software-properties-common if absent during PPA setup
- test: bump pycloudlib to use latest version
- test: Update version of hello package installed on noble
- test: universally ignore netplan apply dbus issue (#5178)
- chore: Remove obsolete nose workaround
- feat: Add support for FTP and FTP over TLS (#4834)
- feat(opennebula): Add support for posix shell
- test: Make analyze tests not depend on GNU date
- test: Eliminate bash dependency from subp tests
- docs: Add breaking changes section to reference docs (#5147) [Cat Red]
- util: add log_level kwarg for logexc() (#5125) [Chris Patterson]
- refactor: Make device info part of distro definition (#5067)
- refactor: Distro-specific growpart code (#5067)
- test(ec2): fix mocking with responses==0.9.0 (focal) (#5163)
- chore(safeyaml): Remove unicode helper for Python2 (#5142)
- Revert "test: fix upgrade dhcp6 on ec2 (#5131)" (#5148)
- refactor(net): Reuse netops code
- refactor(iproute2): Make expressions multi-line for legibility
- feat(freebsd): support freebsd find part by gptid and ufsid (#5122)
[jinkangkang]
- feat: Determining route metric based on NIC name (#5070) [qidong.ld]
- test: Enable profiling in integration tests (#5130)
- dhcp: support configuring static routes for dhclient's unknown-121
option (#5146) [Chris Patterson]
- feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)
[Ksenija Stanojevic]
- fix(url_helper): fix TCP connection leak on readurl() retries (#5144)
[Chris Patterson]
- test: pytest-ify t/u/sources/test_ec2.py
- Revert "ec2: Do not enable dhcp6 on EC2 (#5104)" (#5145) [Major Hayden]
- fix: Logging sensitive data
- test: Mock ds-identify systemd path (#5119)
- fix(dhcpcd): Make lease parsing more robust (#5129)
- test: fix upgrade dhcp6 on ec2 (#5131)
- net/dhcp: raise InvalidDHCPLeaseFileError on error parsing dhcpcd lease
(#5128) [Chris Patterson]
- fix: Fix runtime file locations for cloud-init (#4820)
- ci: fix linkcheck.yml invalid yaml (#5123)
- net/dhcp: bump dhcpcd timeout to 300s (#5127) [Chris Patterson]
- ec2: Do not enable dhcp6 on EC2 (#5104) [Major Hayden]
- fix: Fall back to cached local ds if no valid ds found (#4997)
[PengpengSun]
- ci: Make linkcheck a scheduled job (#5118)
- net: Warn when interface rename fails
- ephemeral(dhcpcd): Set dhcpcd interface down
- Release 24.1.3
- chore: Handle all level 1 TiCS security violations (#5103)
- fix: Always use single datasource if specified (#5098)
- fix(tests): Leaked mocks (#5097)
- fix(rhel)!: Fix network boot order in upstream cloud-init
- fix(rhel): Fix network ordering in sysconfig
- feat: Use NetworkManager renderer by default in RHEL family
- fix: Allow caret at the end of apt package (#5099)
- test: Add missing mocks to prevent bleed through (#5082)
[Robert Schweikert]
- fix: Ensure network config in DataSourceOracle can be unpickled (#5073)
- docs: set the home directory using homedir, not home (#5101)
[Olivier Gayot] (LP: #2047796)
- fix(cacerts): Correct configuration customizations for Photon (#5077)
[Christopher McCann]
- fix(test): Mock systemd fs path for non-systemd distros
- fix(tests): Leaked subp.which mock
- fix(networkd): add GatewayOnLink flag when necessary (#4996) [王煎饼]
- Release 24.1.2
- test: fix `disable_sysfs_net` mock (#5065)
- refactor: don't import subp function directly (#5065)
- test: Remove side effects from tests (#5074)
- refactor: Import log module rather than functions (#5074)
- fix: Fix breaking changes in package install (#5069)
- fix: Undeprecate 'network' in schema route definition (#5072)
- refactor(ec2): simplify convert_ec2_metadata_network_config
- fix(ec2): fix ipv6 policy routing
- fix: document and add 'accept-ra' to network schema (#5060)
- bug(maas): register the correct DatasourceMAASLocal in init-local
(#5068) (LP: #2057763)
- ds-identify: Improve ds-identify testing flexibility (#5047)
- fix(ansible): Add verify_commit and inventory to ansible.pull schema
(#5032) [Fionn Fitzmaurice]
- doc: Explain breaking change in status code (#5049)
- gpg: Handle temp directory containing files (#5063)
- distro(freebsd): add_user: respect homedir (#5061) [Mina Galić]
- doc: Install required dependencies (#5054)
- networkd: Always respect accept-ra if set (#4928) [Phil Sphicas]
- chore: ignore all cloud-init_*.tar.gz in .gitignore (#5059)
- test: Don't assume ordering of ThreadPoolExecutor submissions (#5052)
- feat: Add new distro 'azurelinux' for Microsoft Azure Linux. (#4931)
[Dan Streetman]
- fix(gpg): Make gpg resilient to host configuration changes (#5026)
- Sync 24.1.1 changelog and version
- DS VMware: Fix ipv6 addr converter from netinfo to netifaces (#5029)
[PengpengSun]
- packages/debian: remove dependency on isc-dhcp-client (#5041)
[Chris Patterson]
- test: Allow fake_filesystem to work with TemporaryDirectory (#5035)
- tests: Don't wait for GCE instance teardown (#5037)
- fix: Include DataSourceCloudStack attribute in unpickle test (#5039)
- bug(vmware): initialize new DataSourceVMware attributes at unpickle
(#5021) (LP: #2056439)
- fix(apt): Don't warn on apt 822 source format (#5028)
- fix(atomic_helper.py): ensure presence of parent directories (#4938)
[Shreenidhi Shedi]
- fix: Add "broadcast" to network v1 schema (#5034) (LP: #2056460)
- pro: honor but warn on custom ubuntu_advantage in /etc/cloud/cloud.cfg
(#5030)
- net/dhcp: handle timeouts for dhcpcd (#5022) [Chris Patterson]
- fix: Make wait_for_url respect explicit arguments
- test: Fix scaleway retry assumptions
- fix: Make DataSourceOracle more resilient to early network issues
(#5025) (LP: #2056194)
- chore(cmd-modules): fix exit code when --mode init (#5017)
- feat: pylint: enable W0201 - attribute-defined-outside-init
- refactor: Ensure no attributes defined outside __init__
- chore: disable attribute-defined-outside-init check in tests
- refactor: Use _unpickle rather than hasattr() in sources
- chore: remove unused vendordata "_pure" variables
- chore(cmd-modules): deprecate --mode init (#5005)
- tests: drop CiTestCase and convert to pytest
- bug(tests): mock reads of host's /sys/class/net via get_sys_class_path
- fix: log correct disabled path in ds-identify (#5016)
- tests: ec2 dont spend > 1 second retrying 19 times when 3 times will do
- tests: openstack mock expected ipv6 IMDS
- bug(wait_for_url): when exceptions occur url is unset, use url_exc
(LP: #2055077)
- feat(run-container): Run from arbitrary commitish (#5015)
- tests: Fix wsl test (#5008)
- feat(ds-identify): Don't run unnecessary systemd-detect-virt (#4633)
- chore(ephemeral): add debug log when bringing up ephemeral network
(#5010) [Alec Warren]
- release: sync changelog and version (#5011)
- Cleanup test_net.py (#4840)
- refactor: remove dependency on netifaces (#4634) [Cat Red]
- feat: make lxc binary configurable (#5000)
- docs: update 404 page for new doc site and bug link
- test(aws): local network connectivity on multi-nics (#4982)
- test: Make integration test output more useful (#4984)
== End SRU Template == |
|
2024-07-03 21:47:35 |
James Falcon |
summary |
sru cloud-init (24.2 update) to focal, jammy, mantic and noble |
sru cloud-init (24.2 update) to focal, jammy and noble |
|
2024-07-11 13:56:37 |
Carlos Nihelton |
bug |
|
|
added subscriber Carlos Nihelton |
2024-07-18 19:20:44 |
Andreas Hasenack |
bug |
|
|
added subscriber Andreas Hasenack |
2024-07-18 21:10:37 |
Andreas Hasenack |
cloud-init (Ubuntu Noble): status |
New |
Fix Committed |
|
2024-07-18 21:10:38 |
Andreas Hasenack |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2024-07-18 21:10:50 |
Andreas Hasenack |
bug |
|
|
added subscriber SRU Verification |
2024-07-18 21:10:55 |
Andreas Hasenack |
tags |
|
verification-needed verification-needed-noble |
|
2024-07-18 21:12:02 |
Andreas Hasenack |
cloud-init (Ubuntu Jammy): status |
New |
Fix Committed |
|
2024-07-18 21:12:10 |
Andreas Hasenack |
tags |
verification-needed verification-needed-noble |
verification-needed verification-needed-jammy verification-needed-noble |
|
2024-07-18 21:13:00 |
Andreas Hasenack |
cloud-init (Ubuntu Focal): status |
New |
Fix Committed |
|
2024-07-18 21:13:07 |
Andreas Hasenack |
tags |
verification-needed verification-needed-jammy verification-needed-noble |
verification-needed verification-needed-focal verification-needed-jammy verification-needed-noble |
|
2024-07-31 13:50:23 |
James Falcon |
attachment added |
|
test_24.2.tar.gz https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/2071762/+attachment/5801692/+files/test_24.2.tar.gz |
|
2024-08-01 14:41:31 |
James Falcon |
tags |
verification-needed verification-needed-focal verification-needed-jammy verification-needed-noble |
verification-done verification-done-focal verification-done-jammy verification-done-noble |
|
2024-08-08 18:26:04 |
Andreas Hasenack |
tags |
verification-done verification-done-focal verification-done-jammy verification-done-noble |
verification-done-focal verification-done-jammy verification-needed verification-needed-noble |
|