Skip to content

Releases: canonical/cloud-init

24.1

01 Mar 02:30
24.1
Compare
Choose a tag to compare

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

27 Feb 01:58
23.4.4
Compare
Choose a tag to compare

Highlights:

  • fix(nocloud): smbios datasource definition

23.4.3

02 Feb 21:48
23.4.3
Compare
Choose a tag to compare
  • fix: Handle systemctl when dbus not ready (#4842) (LP: #2046483)

23.4.2

24 Jan 17:25
23.4.2
e127ee6
Compare
Choose a tag to compare

Highlights:

  • fix: Handle invalid user configuration gracefully (#4797) (LP: #2051147)

23.4.1

14 Dec 17:44
23.4.1
Compare
Choose a tag to compare

Highlights:

  • fix(status): Handle systemctl commands when dbus not ready

23.4

04 Dec 16:57
23.4
6e04a2c
Compare
Choose a tag to compare

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

24 Oct 15:08
23.3.3
Compare
Choose a tag to compare

Cloud-init bug fix release 23.3.2:

  • Fix pip-managed ansible on pip < 23.0.1 (#4403)

23.3.2

16 Oct 19:00
23.3.2
Compare
Choose a tag to compare

Cloud-init bug fix release 23.3.2:

  • Revert "ds-identify/CloudStack: $DS_MAYBE if vm running on vmware/xen (#4281)"
    (#4511) (LP: #2039453)

23.3

28 Aug 17:49
3b58835
Compare
Choose a tag to compare
  • 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.

23.2.2

26 Jul 16:31
23.2.2
e65a715
Compare
Choose a tag to compare

Cloud-init bug fix release 23.2.2:

  • Fix NoCloud kernel commandline key parsing (#4273) (Fixes: #4271)
    (LP: #2028562)
  • Fix reference before assignment (#4292) (Fixes: #4288) (LP: #2028784)

p.s.: Many thanks to rustydb and anguswilliams for reporting the issues and anyone involved!