Releases: canonical/cloud-init
Releases · canonical/cloud-init
24.1
Cloud-init release 24.1 is now available
Summary
The 24.1 release:
- spanned about 5 months
- had 27 contributors
- welcomed commits from 6 new contributors
- fixed 5 Launchpad issues
- fixed 28 Github issues
Highlights
- added support for WSL (Windows Subsystem for Linux)
- added support for dhcpcd
- added experimental support for Python 3.13
- improved behavior of
cloud-init status
- ec2: added support for multi NIC / IP instances
- many improvements for cross-distro compatiblity
Breaking Changes
- made dhcpcd the default dhcp client
- removed Ubuntu's ordering dependency on snapd.seeded
- stopped adding network v2 DNS to global DNS
- dropped support for dsa host keys
See the full changelog for more details.
23.4.4
Highlights:
- fix(nocloud): smbios datasource definition
23.4.3
23.4.2
23.4.1
23.4
General:
- Add shellcheck to CI
- util: Remove function abs_join()
- Add support for cloud-init "degraded" state
- status.json: Don't override detail key with error condition
- tools/render-template: Make yaml loading opt-in, fix setup.py
- boothook: allow stdout/stderr to emit to cloud-init-output.log
- cloud-init-generator: Various performance optimizations
- systemd: Standardize cloud-init systemd enablement
- benchmark: benchmark cloud-init-generator independent of ds-identify
- Automatically linkcheck in CI
- cmd: Don't write json status files for non-boot stages
- apport: collect ubuntu-pro logs if ubuntu-advantage.log present
- sources: do not override datasource detection if None is in list
- clean: add a new option to clean generated config files
- pep-594: drop deprecated pipes module import
Distributions:
- Debian: Set Debian's default locale to be c.UTF-8
- Gentoo: upstream gentoo patch
- OpenBSD: Update build-on-openbsd dependencies
- SUSE: Add suse
AliYun: Allow aliyun ds to fetch data in init-local
Azure:
- report failure to eject as error instead of debug
- Check for stale pps data from IMDS
- imds: remove limit for connection errors if route present
- workaround to disable reporting IMDS failures on Azure Stack
- errors: include http code in reason for IMDS failure
- report failure to host if ephemeral DHCP secondary NIC
- imds: ensure new errors are logged immediately when retrying
- check for primary interface when performing DHCP
- imds: retry on 429 errors for reprovisiondata
- add option to enable/disable secondary ip config
- Ignore system volume information folder while scanning
for files in the ntfs resource disk
MAAS: Add datasource to init-local timeframe
NWCS: Update DataSourceNWCS.py
VMware: Fall back to vmtoolsd if vmware-rpctool errs
ConfigModules:
- cc_apt_configure:
- add deb822 support for default sources file
- install software-properties-common when absent but needed
- Install gnupg if gpg not found
- kill dirmngr/gpg-agent without gpgconf dependency
- cc_apt_pipelining: Update docs, deprecate options
- cc_resizefs: Add bcachefs resize support
- cc_package_update_upgrade_install:
- Allow installing snaps via package_update_upgrade_install module
- cc_ubuntu_advantage:
- do not rely on uaclient.messages module
- shift CLI command from ua to pro for all interactions
- cc_set_hostname, cc_update_hostname: check for create_hostname_file
key before writing /etc/hostname
Network:
- ephemeral: Handle link up failure for both ipv4 and ipv6
- warn invalid cfg add /run/cloud-init/network-config
- remove the word "on instance boot" from cloud-init generated config
Schema:
- non-root fallback to default paths on perm errors
- annotation path for invalid top-level keys
- top-level additionalProperties: false
- network-config optional network key. route uses oneOf
- add cloud_init_deepest_matches for best error message
- add network-config support to schema subcommand
- cloud-init schema in early boot or in dev environ
- annotation of nested dicts lists in schema marks
DsIdentify:
- exit 2 on disabled state from marker or cmdline
- Allow disable service and override environment
- match Azure datasource's ds_detect() behavior
- Use grep for faster parsing of cloud config in ds-identify
Logging:
- Standardize logging output to stderr
- Don't configure NullHandler
- Standardize use of cloudinit's logging module
- Log PPID for better debuggin
- Remove logging of PPID path
- style: Make cloudinit.log functions use snake case
- Export warning logs to status.json
Docs:
- man: Document cloud-init error codes
- Add summit digest/trip report to docs
- Clarify boothook docs
- Describe disabling cloud-init using an environment variable
- Tidy up contributing docs
- Add cloud-init overview/introduction
- vmware: Update contents relevant to disable_vmware_customization
- summit-notes: add 2023 notes for reference in mailinglist/discourse
23.3.3
23.3.2
23.3
- Remove python deprecated crypt dependency in favor of
passlib.hash.bcrypt where present. crypt was used by by NetBSD and
Azure datasource. Plan is to eventually deprecate passlib dependency too. - network: support busybox micro DHCP client (udhcpc) alternative to
deprecated isc-dhcp-client. - Clouds:
- Ensure Akamai(and Linode) datasource included in default discovery
- Ec2: support decoding double base64 encoded user-data
- GCE: improve fallback nic selection ens4 over eth0 as primary/default NIC
- Distributions:
- debian/ubuntu: no longer use localectl to set keymap (LP: #2030788)
- systemd v253++: cloud-init status --wait won't block on spawned daemons
- FreeBSD: Ephemeral networking fixes for BSD since /run is preserved
- FreeBSD introduce ds-identify for early datasource detection
- Modules:
- users: support doas/opendoas rules as alternative to sudo
- PEP 668: pip-installed ansible to support break-system-packages installs
- tooling: New file /run/cloud-init/combined-cloud-config.json to read all
merged user-data/config without invoking python.