An AMQP consumer that automatically uploads Cloud images to their respective homes.
  • Python 99.2%
  • Dockerfile 0.8%
Find a file
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
.forgejo/workflows Add Forgejo job to run tests 2026-04-26 17:22:31 +01:00
fedora-image-tester fedora-image-tester: Tweak requires to fix the container build 2026-04-27 15:46:48 -04:00
fedora-image-uploader Update container to Fedora 44, use mostly distro packages 2026-08-06 13:32:05 -04:00
fedora-image-uploader-messages Make all tests runnable through hatch test 2026-04-26 16:13:40 +01:00
.gitignore Add a .gitignore 2026-04-26 17:23:09 +01:00
Containerfile Update container to Fedora 44, use mostly distro packages 2026-08-06 13:32:05 -04:00
Containerfile.fit Update fedora-image-tester to Fedora 44 container 2026-08-06 13:31:56 -04:00
fedora-messaging-fit.toml.example fedora-image-tester: various fix-ups 2025-11-10 13:28:30 -05:00
fedora-messaging.toml.example Add support for Google Cloud Platform 2024-11-04 10:26:07 -05:00
LICENSE Initial commit 2024-03-27 17:18:39 -04:00
README.md Support publishing container images to registries (#4) 2024-05-30 13:07:27 -07: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.