ci: retry kaniko's registry pushes

b018a0f · Gabriel Morell · 2026-09-16 03:14

1 files +11 -1
Message
{commit_body(@commit)}

Files changed

modified .gitlab-ci.yml
+11 −1
@@ -8,4 +8,14 @@ build-master:
8 8 - master
9 9 script:
10 10 - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
11 − - /kaniko/executor --force --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE --registry-mirror us0.regi.kube.gmp.io
11 + # --push-retry: the registry has been returning
12 + # RESUMABLE_BLOB_UPLOAD_INVALID on a different, random blob each run
13 + # (pipelines 2777/2778/2779, three distinct digests), while the pull
14 + # mirror below simultaneously times out — an interrupted upload
15 + # leaves the session invalid, and the final PUT is what reports it.
16 + # Without a retry a single dropped blob fails the whole build.
17 + #
18 + # --image-download-retry: same story on the way in, where the
19 + # fallback from the mirror to the original registry already costs a
20 + # 30s timeout per base image.
21 + - /kaniko/executor --force --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE --registry-mirror us0.regi.kube.gmp.io --push-retry 5 --image-download-retry 3

Parents: fd1515b