Skip to content

Commit b85bd96

Browse files
ab-ghoshtekton-robot
authored andcommitted
fix: resolve manifest list digest instead of platform-specific digest
The get_image_sha() function was using .manifests[0].digest which returns the first platform entry (amd64) instead of the manifest list digest. This causes the operator CSV to pin task images (buildah, s2i, skopeo, ubi-minimal) to amd64-only digests, breaking ARM64 and multi-arch clusters with exec format error. Fix by computing sha256 of the raw manifest list content, which produces the manifest list digest that container runtimes use to resolve the correct platform at pull time. Signed-off-by: ab-ghosh <abghosh@redhat.com>
1 parent 125b2c6 commit b85bd96

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

hack/openshift/update-image-sha.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ find_latest_version() {
2626
echo "$version"
2727
}
2828

29-
# Get SHA digest for an image:tag
30-
get_image_sha() {
29+
# Get manifest list digest for an image:tag (multi-arch)
30+
get_manifest_list_digest() {
3131
local image_url=$1
32-
skopeo inspect --raw docker://${image_url} | jq -r '.manifests[0].digest // .digest'
32+
skopeo inspect --no-tags docker://${image_url} | jq -r '.Digest'
3333
}
3434

3535
# Update image SHA in YAML files
@@ -59,7 +59,7 @@ main() {
5959
echo " Latest version: $latest_version"
6060

6161
image_url="${image_registry}:${latest_version}"
62-
image_sha=$(get_image_sha "$image_url")
62+
image_sha=$(get_manifest_list_digest "$image_url")
6363
echo " SHA: $image_sha"
6464

6565
update_yaml_files "$image_registry" "$image_sha"

0 commit comments

Comments
 (0)