From 3ca2ddf72425612456baef7f4a0cd5a8647dce27 Mon Sep 17 00:00:00 2001 From: Jeff Heidel Date: Sat, 6 Jun 2026 17:16:38 -0700 Subject: [PATCH 1/2] build_library: fix Exoscale image format, size, and compression Exoscale requires Custom Templates to be at least 10GB, expects a .qcow2 extension, and Exoscale Custom Templates do not support compressed (.bz2) images. Currently, Flatcar releases an 8GB compressed .img file. This change ensures the output file uses the .qcow2 extension, applies a post-conversion resize to exactly 10G, and disables compression in the release pipeline to match platform requirements and UI prompts. Signed-off-by: Jeff Heidel --- build_library/vm_image_util.sh | 12 +++++++++++- changelog/changes/2026-06-06-fix-exoscale-image.md | 1 + ci-automation/vms.sh | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 changelog/changes/2026-06-06-fix-exoscale-image.md diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 9c4a7b242be..21e4591d8b4 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -187,7 +187,8 @@ IMG_cloudstack_vhd_OEM_SYSEXT=cloudstack IMG_digitalocean_OEM_SYSEXT=digitalocean ## exoscale -IMG_exoscale_DISK_FORMAT=qcow2 +IMG_exoscale_DISK_FORMAT=exoscale +IMG_exoscale_DISK_EXTENSION=qcow2 IMG_exoscale_OEM_SYSEXT=exoscale ## azure @@ -477,6 +478,15 @@ _write_qcow2_disk() { assert_image_size "$2" qcow2 } +_write_exoscale_disk() { + qemu-img convert -f raw "$1" -O qcow2 -c -o compat=0.10 "$2" + # Exoscale images should be exactly 10G. This is the minimum for + # Custom Templates, and it also can't be any larger because it + # would prevent creation of an instance with the 10G disk size option. + qemu-img resize "$2" 10G + assert_image_size "$2" qcow2 +} + _write_vhd_disk() { qemu-img convert -f raw "$1" -O vpc -o force_size "$2" assert_image_size "$2" vpc diff --git a/changelog/changes/2026-06-06-fix-exoscale-image.md b/changelog/changes/2026-06-06-fix-exoscale-image.md new file mode 100644 index 00000000000..40ae3cc0ac6 --- /dev/null +++ b/changelog/changes/2026-06-06-fix-exoscale-image.md @@ -0,0 +1 @@ + - Exoscale images are now built as 10G .qcow2 so they can be directly used with Exoscale Custom Templates diff --git a/ci-automation/vms.sh b/ci-automation/vms.sh index 55a872d6eba..3af954ff0c8 100644 --- a/ci-automation/vms.sh +++ b/ci-automation/vms.sh @@ -137,7 +137,7 @@ function _vm_build_impl() { COMPRESSION_FORMAT="bz2,none" elif [[ "${format}" =~ ^(hyperv|hyperv_vhdx)$ ]];then COMPRESSION_FORMAT="zip" - elif [[ "${format}" =~ ^(scaleway|kubevirt|proxmoxve|stackit)$ ]];then + elif [[ "${format}" =~ ^(scaleway|kubevirt|proxmoxve|stackit|exoscale)$ ]];then COMPRESSION_FORMAT="none" elif [[ "${format}" =~ ^(akamai)$ ]];then COMPRESSION_FORMAT="gz" From 0104e4eb78082904472f6df4256824679ffb9fa1 Mon Sep 17 00:00:00 2001 From: Jeff Heidel Date: Mon, 8 Jun 2026 08:59:18 -0700 Subject: [PATCH 2/2] Update changelog/changes/2026-06-06-fix-exoscale-image.md Co-authored-by: Mathieu Tortuyaux Signed-off-by: Jeff Heidel --- changelog/changes/2026-06-06-fix-exoscale-image.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/changes/2026-06-06-fix-exoscale-image.md b/changelog/changes/2026-06-06-fix-exoscale-image.md index 40ae3cc0ac6..a68d31a28b4 100644 --- a/changelog/changes/2026-06-06-fix-exoscale-image.md +++ b/changelog/changes/2026-06-06-fix-exoscale-image.md @@ -1 +1 @@ - - Exoscale images are now built as 10G .qcow2 so they can be directly used with Exoscale Custom Templates + - Exoscale: images are now built as 10G .qcow2 so they can be directly used with Exoscale Custom Templates ([scripts#4075](https://github.com/flatcar/scripts/pull/4075))