Allow disabling compression of uploaded images

This may not be required for openstack, but let's maintain parity
between the swift and s3 upload roles.

Change-Id: I3740528d90b27ca36d742b6069014a395252a1f3
Co-Authored-By: Simon Westphahl <simon.westphahl@bmw.de>
This commit is contained in:
James E. Blair
2025-10-10 09:29:23 -07:00
parent 1104215546
commit b4ebca61cc
3 changed files with 32 additions and 17 deletions

View File

@@ -4,7 +4,8 @@ This uploads a filesystem image (for example, one built by diskimage
builder) to an OpenStack Object Store (Swift) container. The role builder) to an OpenStack Object Store (Swift) container. The role
returns an artifact to Zuul suitable for use by the zuul-launcher. returns an artifact to Zuul suitable for use by the zuul-launcher.
If a `raw` or `vhd` image is provided and the `zstd` command is If a `raw` or `vhd` image is provided,
`upload_image_swift_compress_image` is true and the `zstd` command is
available, it will be compressed in the way that zuul-launcher available, it will be compressed in the way that zuul-launcher
expects. expects.
@@ -61,6 +62,15 @@ expects.
The object name to use when uploading. The object name to use when uploading.
.. zuul:rolevar:: upload_image_swift_compress_image
:default: true
Whether to compress the image using zstd before upload.
Some providers may require the image to be in raw format when
importing directly from object storage. In those cases the flag
should be set to `false`.
.. zuul:rolevar:: upload_image_swift_hash_timeout .. zuul:rolevar:: upload_image_swift_hash_timeout
:default: 600 :default: 600

View File

@@ -3,4 +3,5 @@ upload_image_swift_delete_after: 0
upload_image_swift_filename: '{{ build_diskimage_image_root }}/{{ build_diskimage_image_name }}.{{ upload_image_swift_extension }}' upload_image_swift_filename: '{{ build_diskimage_image_root }}/{{ build_diskimage_image_name }}.{{ upload_image_swift_extension }}'
upload_image_swift_name: '{{ zuul.build }}-{{ build_diskimage_image_name }}.{{ upload_image_swift_extension }}' upload_image_swift_name: '{{ zuul.build }}-{{ build_diskimage_image_name }}.{{ upload_image_swift_extension }}'
upload_image_swift_extension: '{{ upload_image_swift_format }}' upload_image_swift_extension: '{{ upload_image_swift_format }}'
upload_image_swift_compress_image: true
upload_image_swift_hash_timeout: 600 upload_image_swift_hash_timeout: 600

View File

@@ -15,27 +15,31 @@
poll: 0 poll: 0
register: md5_task register: md5_task
- name: Check if zstd is installed
shell: "command -v zstd || exit 1"
register: zstd_installed
failed_when: false
- name: Compress image
when:
- "zstd_installed.rc == 0"
- "upload_image_swift_format in ['raw', 'vhd']"
command: zstd '{{ upload_image_swift_filename }}'
- name: Set extension - name: Set extension
set_fact: set_fact:
zj_upload_image_swift_extension: '' zj_upload_image_swift_extension: ''
- name: Set extension - name: Compress image
when: when:
- "zstd_installed.rc == 0" - "upload_image_swift_compress_image"
- "upload_image_swift_format in ['raw', 'vhd']" block:
set_fact: - name: Check if zstd is installed
zj_upload_image_swift_extension: '.zst' shell: "command -v zstd || exit 1"
register: zstd_installed
failed_when: false
- name: Compress image
when:
- "zstd_installed.rc == 0"
- "upload_image_swift_format in ['raw', 'vhd']"
command: zstd '{{ upload_image_swift_filename }}'
- name: Set extension
when:
- "zstd_installed.rc == 0"
- "upload_image_swift_format in ['raw', 'vhd']"
set_fact:
zj_upload_image_swift_extension: '.zst'
- name: Upload image to swift - name: Upload image to swift
upload_image_swift: upload_image_swift: