From 152e5633ebc6f09242023d3b1bfe1f6e41d28d33 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Apr 28 2025 21:02:10 +0000 Subject: [PATCH 1/2] container: allow ppc64le and s390x to be missing for fedora-iot These are only present in the current manifest by mistake (we got the IoT and base images mixed up). IoT isn't actually meant to be built for these arches. Now we've fixed the mixup, though, sync is failing every day because the current manifest has these arches in it. Use the mechanism I added in #45 to allow them to be missing. Signed-off-by: Adam Williamson --- diff --git a/fedora-image-uploader/fedora_image_uploader/handler.py b/fedora-image-uploader/fedora_image_uploader/handler.py index 9e59041..ebf38d2 100644 --- a/fedora-image-uploader/fedora_image_uploader/handler.py +++ b/fedora-image-uploader/fedora_image_uploader/handler.py @@ -359,6 +359,9 @@ class Uploader: "fedora-kinoite": { "*": ["ppc64le"], }, + "fedora-iot": { + "*": ["ppc64le", "s390x"], + }, } ok = set() rule = rules.get(repo, {}) From 4bfc6c41da05d1041163c2d982c993a950253027 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Apr 28 2025 21:04:04 +0000 Subject: [PATCH 2/2] container: don't bail out multi-arch loop entirely on first fail This loop handles multiple repo/images pairs. Just because an expected arch is missing for *one* repo doesn't mean we should bail out of possibly publishing manifests for *all subsequent* repos in the compose. This is currently causing us not to publish the multi-arch manifest for fedora-bootc because we're failing the check for fedora-iot, even though fedora-bootc would pass the check fine. Signed-off-by: Adam Williamson --- diff --git a/fedora-image-uploader/fedora_image_uploader/handler.py b/fedora-image-uploader/fedora_image_uploader/handler.py index ebf38d2..e9af349 100644 --- a/fedora-image-uploader/fedora_image_uploader/handler.py +++ b/fedora-image-uploader/fedora_image_uploader/handler.py @@ -310,8 +310,9 @@ class Uploader: ffrel.cid, ) # we assume all registries always have the same - # content, so if we hit this failure, just return - return + # content, so if we hit this failure, just go on to + # the next repo + continue refs = [(f"{firstregref}-{arch}", arch) for arch in builtarches] self.create_and_publish_container_manifest(repo, refs, tags)