James E. Blair 4b025bbf2f Add upload-image-swift role
This is a near-copy of the swift-upload-image role in
opendev/zuul-providers.  This is to share the opendev-developed role
with the wider zuul community as we start to test zuul-launcher.

Change-Id: I95ef921f08fabae9fce2e57884905b11b7d0c1cb
2025-03-17 14:38:40 -07:00

59 lines
2.1 KiB
ReStructuredText

Upload a filesystem image to a swift container
This uploads a filesystem image (for example, one built by diskimage
builder) to an OpenStack Object Store (Swift) container. The role
returns an artifact to Zuul suitable for use by the zuul-launcher.
**Role Variables**
.. zuul:rolevar:: upload_image_swift_cloud_config
Complex argument which contains the cloud configuration in
os-cloud-config (clouds.yaml) format. It is expected that this
argument comes from a `Secret`.
.. zuul:rolevar:: upload_image_swift_container
This role will create containers which do not already exist.
Note that you will want to set this to a value that uniquely
identifies your Zuul installation if using shared object stores that
require globally unique container names. For example if using a
public cloud whose Swift API is provided by Ceph.
The container should be dedicated to image uploads so that the
"delete_after" option may be safely used.
.. zuul:rolevar:: upload_image_swift_delete_after
:default: 0
Number of seconds to delete objects after upload. Default is 0
(disabled). This will tell swift to delete the file automatically,
but if that fails, the next run of the role will attempt to delete
any objects in the bucket older than this time.
.. zuul:rolevar:: upload_image_swift_image_name
:default: `{{ build_diskimage_image_name }}`
The Zuul image name for use by zuul-launcher (e.g., `debian-bookworm`).
.. zuul:rolevar:: upload_image_swift_format
The image format (e.g., `qcow2`).
.. zuul:rolevar:: upload_image_swift_extension
:default: `{{ upload_image_swift_format }}`
The extension to use when uploading (only used in the default
values for the following variables.
.. zuul:rolevar:: upload_image_swift_filename
:default: `{{ build_diskimage_image_root }}/{{ build_diskimage_image_name }}.{{ upload_image_swift_extension }}`
The path of the local file to upload.
.. zuul:rolevar:: upload_image_swift_name
:default: `{{ zuul.build }}-{{ build_diskimage_image_name }}.{{ upload_image_swift_extension }}`
The object name to use when uploading.