From e82d479ad0965c10fd2f874fe729b3fb6fb64e48 Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Thu, 25 Sep 2025 16:17:34 +0000 Subject: [PATCH 01/14] Fix cloud-init logging format The typo leads to problems when cloud-init attempts to load the logging configuration. This is evident in the logs, as shown by the following stack trace: > cloud-init[515]: 2025-09-24 12:07:29,260 - util.py[WARNING]: Failed > loading yaml blob. Invalid format at line 10 column 1: "expected ? '', but found '' > cloud-init[515]: in "", line 10, column 1: > cloud-init[515]: _log: > cloud-init[515]: ^" --- .../system_azure_init/assets/etc/cloud-init/05-logging.cfg | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/stemcell_builder/stages/system_azure_init/assets/etc/cloud-init/05-logging.cfg b/stemcell_builder/stages/system_azure_init/assets/etc/cloud-init/05-logging.cfg index b6d39ad6fc..b5a95e8078 100644 --- a/stemcell_builder/stages/system_azure_init/assets/etc/cloud-init/05-logging.cfg +++ b/stemcell_builder/stages/system_azure_init/assets/etc/cloud-init/05-logging.cfg @@ -1,7 +1,7 @@ -=## This yaml formated config file handles setting +## This yaml formatted config file handles setting ## logger information. The values that are necessary to be set ## are seen at the bottom. The top '_log' are only used to remove -## redundency in a syslog and fallback-to-file case. +## redundancy in a syslog and fallback-to-file case. ## ## The 'log_cfgs' entry defines a list of logger configs ## Each entry in the list is tried, and the first one that @@ -68,5 +68,4 @@ log_cfgs: # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. -output: {all: '| tee -a /var/log/cloud-init-output.log'} - +output: {all: '| tee -a /var/log/cloud-init-output.log'} \ No newline at end of file From 02e4ac0478508a34bc2fe84525472084aa6becfb Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Thu, 23 Oct 2025 10:01:08 +0000 Subject: [PATCH 02/14] Disable floppy module --- .../os_image_linux_kernel_modules_shared_examples.rb | 6 ++++++ stemcell_builder/stages/system_kernel_modules/apply.sh | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bosh-stemcell/spec/support/os_image_linux_kernel_modules_shared_examples.rb b/bosh-stemcell/spec/support/os_image_linux_kernel_modules_shared_examples.rb index d5fd43a725..a82f7598f2 100644 --- a/bosh-stemcell/spec/support/os_image_linux_kernel_modules_shared_examples.rb +++ b/bosh-stemcell/spec/support/os_image_linux_kernel_modules_shared_examples.rb @@ -78,4 +78,10 @@ its(:content) { should match 'install rds /bin/true' } end end + + context 'prevent floppy module from being loaded' do + describe file('/etc/modprobe.d/blacklist.conf') do + its(:content) { should match 'install floppy /bin/true' } + end + end end diff --git a/stemcell_builder/stages/system_kernel_modules/apply.sh b/stemcell_builder/stages/system_kernel_modules/apply.sh index e45aad931e..091f9ea208 100755 --- a/stemcell_builder/stages/system_kernel_modules/apply.sh +++ b/stemcell_builder/stages/system_kernel_modules/apply.sh @@ -18,7 +18,8 @@ install hfs /bin/true install hfsplus /bin/true install squashfs /bin/true install udf /bin/true -install rds /bin/true' >> $chroot/etc/modprobe.d/blacklist.conf +install rds /bin/true +install floppy /bin/true' >> $chroot/etc/modprobe.d/blacklist.conf echo '# prevent nouveau from loading blacklist nouveau From cdfa979a187c54c10ddac4313d87168b9229cf13 Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Thu, 6 Nov 2025 14:47:57 +0000 Subject: [PATCH 03/14] Prevent kernel from auto-loading floppy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In a previous change (#449), loading the floppy module was disabled by redirecting the floppy command to true. However, Buffer I/O errors observed in the `dmesg` output indicate that the kernel is still attempting to load the floppy module when the hardware supports it. ```txt blk_update_request: I/O error, dev fd0, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0 floppy0: disk absent or changed during operation ``` This suggests that during boot: 1. Kernel detects floppy controller hardware 2. udev/kernel auto-loads floppy module (install directive not active yet) 3. Floppy driver starts, finds no disk → I/O errors 4. install directive becomes active (too late!) The blacklist in /etc/modprobe.d only affects modprobe after the root filesystem is active. If the initramfs contains a `floppy.ko` file and is not rebuilt after the blacklist has been applied, the initramfs auto-loads the floppy driver. `update-initramfs` rebuilds the initramfs and includes the /etc/modprobe.d rules to the root fs. --- stemcell_builder/stages/system_kernel_modules/apply.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stemcell_builder/stages/system_kernel_modules/apply.sh b/stemcell_builder/stages/system_kernel_modules/apply.sh index 091f9ea208..6b7f29d5b4 100755 --- a/stemcell_builder/stages/system_kernel_modules/apply.sh +++ b/stemcell_builder/stages/system_kernel_modules/apply.sh @@ -29,3 +29,5 @@ alias nouveau off alias lbm-nouveau off' >> $chroot/etc/modprobe.d/blacklist-nouveau.conf rm -rf $chroot/lib/modules/*/kernel/zfs $chroot/usr/src/linux-headers-*/zfs + +run_in_chroot $chroot "update-initramfs -u -k all" \ No newline at end of file From d27d1868f90061ad3b333f57a258919bf1db87fd Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Fri, 14 Nov 2025 18:20:10 +0100 Subject: [PATCH 04/14] Mount /sys in system_kernel_modules for initramfs generation The system_kernel_modules stage fails when running update-initramfs with FIPS kernels because the FIPS initramfs hooks require /sys to be mounted for hardware introspection when MODULES=dep is configured. The run_in_chroot helper creates an isolated mount namespace via unshare -m, which only mounts /dev and /proc but not /sys. This causes mkinitramfs to fail with "MODULES dep requires mounted sysfs on /sys" when the FIPS hooks attempt to scan hardware capabilities. Mount /sys explicitly in system_kernel_modules/apply.sh before calling update-initramfs to ensure the kernel device model and driver information is available for initramfs generation. --- stemcell_builder/stages/system_kernel_modules/apply.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stemcell_builder/stages/system_kernel_modules/apply.sh b/stemcell_builder/stages/system_kernel_modules/apply.sh index 6b7f29d5b4..7d7e48c83e 100755 --- a/stemcell_builder/stages/system_kernel_modules/apply.sh +++ b/stemcell_builder/stages/system_kernel_modules/apply.sh @@ -30,4 +30,6 @@ alias lbm-nouveau off' >> $chroot/etc/modprobe.d/blacklist-nouveau.conf rm -rf $chroot/lib/modules/*/kernel/zfs $chroot/usr/src/linux-headers-*/zfs +mount --bind /sys "$chroot/sys" +add_on_exit "umount $chroot/sys" run_in_chroot $chroot "update-initramfs -u -k all" \ No newline at end of file From 68c1f7785d8aa4bb84233ddbbed930c721b55d72 Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Tue, 4 Nov 2025 14:43:38 +0000 Subject: [PATCH 05/14] Add hvperv-kv daemon for Azure stemcells Azure runs on the Hyper-V hypervisor, and Linux VMs rely on Linux Integration Services (LIS) to communicate with the host. These services include kernel modules (like hv_utils) and daemons (hv_kvp_daemon, hv_vss_daemon, etc.) that handle: - Host-to-guest communication - IP address reporting - VM metadata exchange - Backup coordination (via VSS) The hv_kvp_daemon specifically manages key-value pair exchange between the Azure host and the Linux guest. If the daemon is missing, Azure may not be able to retrieve guest metadata (e.g., hostname, IP address) This can affect Azure Resource Graph queries, scripts that rely on guest-reported data, backup and monitoring tools that use KVP for coordination cloud-init writes warnings about events that could not be sent to hv-kvp: ```txt $ grep kvp /var/log/cloud-init.log failed to truncate kvp pool file, [Errno 2] No such file or directory: '/var/lib/hyperv/.kvp_pool_1' failed posting events to kvp, [Errno 2] No such file or directory: '/var/lib/hyperv/.kvp_pool_1' ``` --- bosh-stemcell/spec/stemcells/azure_spec.rb | 21 +++++++++++++++++++ .../stages/system_azure_init/apply.sh | 6 +++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/bosh-stemcell/spec/stemcells/azure_spec.rb b/bosh-stemcell/spec/stemcells/azure_spec.rb index ddf880f0d1..82d104419c 100755 --- a/bosh-stemcell/spec/stemcells/azure_spec.rb +++ b/bosh-stemcell/spec/stemcells/azure_spec.rb @@ -40,4 +40,25 @@ its(:content) { should include('"PartitionerType": "parted"') } end end + + context 'installed by system_azure_init', { + exclude_on_alicloud: true, + exclude_on_aws: true, + exclude_on_google: true, + exclude_on_vcloud: true, + exclude_on_vsphere: true, + exclude_on_warden: true, + exclude_on_openstack: true, + exclude_on_softlayer: true, + } do + describe 'Hyper-V KVP daemon' do + describe command('which hv_kvp_daemon') do + its(:exit_status) { should eq 0 } + end + + describe service('hv-kvp-daemon') do + it { should be_enabled } + end + end + end end diff --git a/stemcell_builder/stages/system_azure_init/apply.sh b/stemcell_builder/stages/system_azure_init/apply.sh index ac0f6f9a09..d9d1a3ea1f 100755 --- a/stemcell_builder/stages/system_azure_init/apply.sh +++ b/stemcell_builder/stages/system_azure_init/apply.sh @@ -5,7 +5,8 @@ set -e base_dir=$(readlink -nf $(dirname $0)/../..) source $base_dir/lib/prelude_apply.bash -packages="python3 python3-pyasn1 python3-setuptools python3-distro python-is-python3 cloud-init azure-vm-utils" +packages="python3 python3-pyasn1 python3-setuptools python3-distro python-is-python3 \ +cloud-init azure-vm-utils linux-cloud-tools-common linux-cloud-tools-generic" pkg_mgr install $packages wala_release=2.9.1.1 @@ -66,3 +67,6 @@ cat $chroot/etc/rsyslog.d/21-cloudinit.conf >> $chroot/etc/rsyslog.d/50-default. rm $chroot/etc/rsyslog.d/21-cloudinit.conf + +# Enable Hyper-V KVP daemon (installed via linux-cloud-tools) +run_in_chroot "$chroot" "systemctl enable hv-kvp-daemon.service" From 2043d9104b26019f234293d963d201c53b01d9f4 Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Sat, 8 Nov 2025 19:49:59 +0000 Subject: [PATCH 06/14] Add missing tests for waagent.service --- bosh-stemcell/spec/stemcells/azure_spec.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/bosh-stemcell/spec/stemcells/azure_spec.rb b/bosh-stemcell/spec/stemcells/azure_spec.rb index 82d104419c..da7c98c88a 100755 --- a/bosh-stemcell/spec/stemcells/azure_spec.rb +++ b/bosh-stemcell/spec/stemcells/azure_spec.rb @@ -60,5 +60,20 @@ it { should be_enabled } end end + + describe 'WALinuxAgent configuration' do + describe file('/etc/waagent.conf') do + it { should be_owned_by('root') } + end + + describe file('/lib/systemd/system/walinuxagent.service') do + it { should be_mode(0644) } + it { should be_owned_by('root') } + end + + describe service('walinuxagent') do + it { should be_enabled } + end + end end end From b5333d6e6a4d4ea7505340d7c27ca3a085e2bd74 Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Fri, 21 Nov 2025 10:33:14 +0000 Subject: [PATCH 07/14] Add linux-cloud-tools to expected azure packages Fixes #453 --- .../spec/assets/dpkg-list-ubuntu-azure-additions.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bosh-stemcell/spec/assets/dpkg-list-ubuntu-azure-additions.txt b/bosh-stemcell/spec/assets/dpkg-list-ubuntu-azure-additions.txt index 39fbb77d61..9b254fcd99 100644 --- a/bosh-stemcell/spec/assets/dpkg-list-ubuntu-azure-additions.txt +++ b/bosh-stemcell/spec/assets/dpkg-list-ubuntu-azure-additions.txt @@ -1,5 +1,9 @@ azure-vm-utils cloud-init +linux-cloud-tools-5.15 +linux-cloud-tools-5.15-generic +linux-cloud-tools-common +linux-cloud-tools-generic netplan.io python-is-python3 python3-attr From 2abc450209d570d2a26dbc21bba41f75dc944dc7 Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Thu, 13 Nov 2025 16:46:53 +0100 Subject: [PATCH 08/14] Enable cloud-init apt-configure module for Azure stemcells Azure stemcells now properly use Azure-optimized APT mirrors (azure.archive.ubuntu.com) by enabling the apt-configure module in cloud-init configuration. The LISA (Linux Integration Services Automation) test suite's verify_repository_installed test was failing because Azure VMs were using archive.ubuntu.com instead of azure.archive.ubuntu.com for APT package repositories. While the Azure mirror configuration existed in /etc/cloud/cloud.cfg.d/90-azure-apt-sources.cfg, it was never applied because the apt-configure module was not enabled in cloud-init's module list. Added apt-configure to the cloud_init_modules list in cloud.cfg, which instructs cloud-init to read and apply the Azure APT mirror configuration at VM boot time. This ensures /etc/apt/sources.list is automatically updated to use Azure-optimized mirrors. --- bosh-stemcell/spec/stemcells/azure_spec.rb | 12 ++++++++++++ .../assets/etc/cloud-init/cloud.cfg | 1 + 2 files changed, 13 insertions(+) diff --git a/bosh-stemcell/spec/stemcells/azure_spec.rb b/bosh-stemcell/spec/stemcells/azure_spec.rb index da7c98c88a..bc6d784931 100755 --- a/bosh-stemcell/spec/stemcells/azure_spec.rb +++ b/bosh-stemcell/spec/stemcells/azure_spec.rb @@ -41,6 +41,18 @@ end end + context 'cloud-init Azure APT mirror configuration' do + describe file('/etc/cloud/cloud.cfg.d/90-azure-apt-sources.cfg') do + it { should be_file } + its(:content) { should include('http://azure.archive.ubuntu.com/ubuntu/') } + end + + describe file('/etc/cloud/cloud.cfg') do + it { should be_file } + its(:content) { should include('apt-configure') } + end + end + context 'installed by system_azure_init', { exclude_on_alicloud: true, exclude_on_aws: true, diff --git a/stemcell_builder/stages/system_azure_init/assets/etc/cloud-init/cloud.cfg b/stemcell_builder/stages/system_azure_init/assets/etc/cloud-init/cloud.cfg index bd12396ec1..8454de72ad 100644 --- a/stemcell_builder/stages/system_azure_init/assets/etc/cloud-init/cloud.cfg +++ b/stemcell_builder/stages/system_azure_init/assets/etc/cloud-init/cloud.cfg @@ -10,6 +10,7 @@ cloud_init_modules: - update_etc_hosts - users-groups - ssh + - apt-configure cloud_config_modules: - ssh-import-id - set-passwords From a6c8813aa30b760cd7b543cddc956ac09c3d294a Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Tue, 2 Dec 2025 17:32:29 +0000 Subject: [PATCH 09/14] Update waagent to `v2.15.0.1` and keep systemd config in sync * upgrades waagent to the latest version * syncs the systemd config, which adds memory-accounting and a dependency to cloud-init.service, which ensures that the waagent.service does not start before cloud-init has finished. --- stemcell_builder/stages/system_azure_init/apply.sh | 4 ++-- .../assets/etc/waagent/walinuxagent.service | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/stemcell_builder/stages/system_azure_init/apply.sh b/stemcell_builder/stages/system_azure_init/apply.sh index d9d1a3ea1f..3d8f1b9d48 100755 --- a/stemcell_builder/stages/system_azure_init/apply.sh +++ b/stemcell_builder/stages/system_azure_init/apply.sh @@ -9,8 +9,8 @@ packages="python3 python3-pyasn1 python3-setuptools python3-distro python-is-pyt cloud-init azure-vm-utils linux-cloud-tools-common linux-cloud-tools-generic" pkg_mgr install $packages -wala_release=2.9.1.1 -wala_expected_sha1=b61bd57f3b2f7b048d6bab2739690bbf1d9c213b +wala_release=2.15.0.1 +wala_expected_sha1=155fd6f326a2bf2ff97b4ea2e2c83dc16a9c1768 curl -L https://github.com/Azure/WALinuxAgent/archive/v${wala_release}.tar.gz > /tmp/wala.tar.gz sha1=$(cat /tmp/wala.tar.gz | openssl dgst -sha1 | awk 'BEGIN {FS="="}; {gsub(/ /,"",$2); print $2}') diff --git a/stemcell_builder/stages/system_azure_init/assets/etc/waagent/walinuxagent.service b/stemcell_builder/stages/system_azure_init/assets/etc/waagent/walinuxagent.service index 55db8fa3d9..27a36a4f61 100755 --- a/stemcell_builder/stages/system_azure_init/assets/etc/waagent/walinuxagent.service +++ b/stemcell_builder/stages/system_azure_init/assets/etc/waagent/walinuxagent.service @@ -7,8 +7,8 @@ [Unit] Description=Azure Linux Agent -After=network-online.target -Wants=network-online.target ssh.service sshd-keygen.service +After=network-online.target cloud-init.service +Wants=network-online.target sshd.service sshd-keygen.service ConditionFileIsExecutable=/usr/sbin/waagent ConditionPathExists=/etc/waagent.conf @@ -22,6 +22,7 @@ ExecStart=/usr/bin/python3 -u /usr/sbin/waagent -daemon Restart=always Slice=azure.slice CPUAccounting=yes +MemoryAccounting=yes [Install] WantedBy=multi-user.target From 8707172ef3450439b62a46284728b454aac48dc1 Mon Sep 17 00:00:00 2001 From: Sebastian Heid <8442432+s4heid@users.noreply.github.com> Date: Wed, 3 Dec 2025 19:42:20 +0100 Subject: [PATCH 10/14] Initialize log directory required by waagent waagent assumes that the `/var/log/azure` directory exists and raises an exception in the telemetry module if it does not. ```sh ERROR TelemetryEventsCollector ExtHandler Event: name=WALinuxAgent, op=ExtensionTelemetryEventProcessing, message=Unknown error occurred when trying to collect extension events:[Errno 2] No such file or directory: '/var/log/azure' ``` --- stemcell_builder/stages/system_azure_init/apply.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/stemcell_builder/stages/system_azure_init/apply.sh b/stemcell_builder/stages/system_azure_init/apply.sh index 3d8f1b9d48..f9f14d797c 100755 --- a/stemcell_builder/stages/system_azure_init/apply.sh +++ b/stemcell_builder/stages/system_azure_init/apply.sh @@ -33,6 +33,7 @@ run_in_chroot $chroot " sudo rm -fr WALinuxAgent-${wala_release} rm wala.tar.gz " +mkdir -p $chroot/var/log/azure cp -f $dir/assets/etc/waagent/waagent.conf $chroot/etc/waagent.conf cp -f $dir/assets/etc/waagent/walinuxagent.service $chroot/lib/systemd/system/walinuxagent.service chmod 0644 $chroot/lib/systemd/system/walinuxagent.service From 40027a90290ae6c836619622f3a0d11dea855c5a Mon Sep 17 00:00:00 2001 From: Sebastian Max Dusch Date: Thu, 14 Aug 2025 16:54:01 +0200 Subject: [PATCH 11/14] Improve chrony clock settings Co-Authored-By: Sebastian Heid <8442432+s4heid@users.noreply.github.com> --- stemcell_builder/stages/bosh_azure_chrony/apply.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stemcell_builder/stages/bosh_azure_chrony/apply.sh b/stemcell_builder/stages/bosh_azure_chrony/apply.sh index ccecfa630b..4ee677ce02 100755 --- a/stemcell_builder/stages/bosh_azure_chrony/apply.sh +++ b/stemcell_builder/stages/bosh_azure_chrony/apply.sh @@ -9,5 +9,5 @@ source $base_dir/lib/prelude_bosh.bash cat > $chroot/etc/chrony/conf.d/azure_ptp.conf < Date: Thu, 16 Oct 2025 17:09:05 +0200 Subject: [PATCH 12/14] Improve chrony reliability on Azure add systemd override (FIFO scheduling, priority 50, OOMScoreAdjust -500) change Hyper-V PTP refclock poll 3 -> -1 (sampling interval max from 8s to 0.5s; with dpoll -2 dynamic range shifts from 2-8s to 0.125-0.5s) for tighter offset/jitter. (#442) Co-Authored-By: Sebastian Heid <8442432+s4heid@users.noreply.github.com> --- .../stages/bosh_azure_chrony/apply.sh | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/stemcell_builder/stages/bosh_azure_chrony/apply.sh b/stemcell_builder/stages/bosh_azure_chrony/apply.sh index 4ee677ce02..eba4baf379 100755 --- a/stemcell_builder/stages/bosh_azure_chrony/apply.sh +++ b/stemcell_builder/stages/bosh_azure_chrony/apply.sh @@ -6,8 +6,24 @@ base_dir=$(readlink -nf $(dirname $0)/../..) source $base_dir/lib/prelude_apply.bash source $base_dir/lib/prelude_bosh.bash +mkdir -p /etc/systemd/system/chrony.service.d + +cat > $chroot/etc/systemd/system/chrony.service.d/chrony-systemd-override.conf < $chroot/etc/chrony/conf.d/azure_ptp.conf < Date: Fri, 17 Oct 2025 08:50:51 +0000 Subject: [PATCH 13/14] Fix path to chrony.service This change sets the correct path when creating the chrony.service directory. The wrong path was introduced in #442. --- stemcell_builder/stages/bosh_azure_chrony/apply.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stemcell_builder/stages/bosh_azure_chrony/apply.sh b/stemcell_builder/stages/bosh_azure_chrony/apply.sh index eba4baf379..f233772a1a 100755 --- a/stemcell_builder/stages/bosh_azure_chrony/apply.sh +++ b/stemcell_builder/stages/bosh_azure_chrony/apply.sh @@ -6,7 +6,7 @@ base_dir=$(readlink -nf $(dirname $0)/../..) source $base_dir/lib/prelude_apply.bash source $base_dir/lib/prelude_bosh.bash -mkdir -p /etc/systemd/system/chrony.service.d +mkdir -p $chroot/etc/systemd/system/chrony.service.d cat > $chroot/etc/systemd/system/chrony.service.d/chrony-systemd-override.conf < Date: Wed, 4 Mar 2026 09:44:45 +0100 Subject: [PATCH 14/14] Set linux-cloud-tools version to 6.8 in expectation --- .../spec/assets/dpkg-list-ubuntu-azure-additions.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bosh-stemcell/spec/assets/dpkg-list-ubuntu-azure-additions.txt b/bosh-stemcell/spec/assets/dpkg-list-ubuntu-azure-additions.txt index 9b254fcd99..826f382eb1 100644 --- a/bosh-stemcell/spec/assets/dpkg-list-ubuntu-azure-additions.txt +++ b/bosh-stemcell/spec/assets/dpkg-list-ubuntu-azure-additions.txt @@ -1,7 +1,7 @@ azure-vm-utils cloud-init -linux-cloud-tools-5.15 -linux-cloud-tools-5.15-generic +linux-cloud-tools-6.8 +linux-cloud-tools-6.8-generic linux-cloud-tools-common linux-cloud-tools-generic netplan.io