cloud-image-uploader/fedora-image-uploader
Jeremy Cline e16b83df7f
Some checks failed
/ test (push) Failing after 24s
Update container to Fedora 44, use mostly distro packages
Recently there was a regression in Pika, and it would generally be nice
to use distribution packages for most of our dependencies. Since the
image tester is already committing similar crimes I think it's fine for
the uploader, too.

Right now we only pull in the Google SDK bits from PyPI, as well as the
Azure compute module from there since the Azure CLI pins an ancient
version.

Signed-off-by: Jeremy Cline <jeremycline@microsoft.com>
2026-08-06 13:32:05 -04:00
..
fedora_image_uploader azure: maybe fix crashing on gallery creation 2026-06-10 12:33:44 -04:00
tests azure: maybe fix crashing on gallery creation 2026-06-10 12:33:44 -04:00
LICENSE Don't symlink to the license 2024-11-21 10:29:53 -05:00
pyproject.toml Update container to Fedora 44, use mostly distro packages 2026-08-06 13:32:05 -04:00
README.md Move the message handler into a subdirectory 2024-06-17 14:27:26 -04:00
tox.ini Add Python 3.14 to the tox test matrix 2025-06-17 15:12:44 -04:00

cloud-image-uploader

An AMQP consumer that automatically uploads Cloud and container images to their respective homes.

Configuring

The fedora-messaging service is the container entrypoint and is also used to provide most of the configuration. An example configuration file is included and the full list of options are in fedora-messaging's configuration documentation. The FEDORA_MESSAGING_CONF environment variable should be set to the configuration file's location.

In addition to fedora-messaging, the Azure Ansible collection needs Azure credentials provided. It supports using environment variables, a credentials file at ~/.azure/credentials or the azure-cli credentials. For example, to authenticate via environment variables using an app registration in the Microsoft Entra ID service with a client secret, setting the AZURE_TENANT, AZURE_CLIENT_ID, and AZURE_SECRET along with the AZURE_SUBSCRIPTION_ID will be picked up by the Ansible playbook. The app registration needs to be configured in the given subscription's access control settings.

Container image upload to registries uses the skopeo and buildah commands, so for this to work, the system must be in a state such that these commands have the necessary credentials to upload to the registries configured, non-interactively. If no container registries are configured, container images will not be handled.