File tree Expand file tree Collapse file tree 3 files changed +64
-4
lines changed Expand file tree Collapse file tree 3 files changed +64
-4
lines changed Original file line number Diff line number Diff line change @@ -40,7 +40,30 @@ sudo dnf -y clean all
4040old_version=$( sudo dnf info NetworkManager | grep Version | cut -d ' :' -f 2)
4141
4242# Update to latest packages first
43- sudo dnf -y upgrade --nobest
43+ # Number of attempts
44+ MAX_RETRIES=5
45+ # Delay between attempts (in seconds)
46+ _YUM_RETRY_BACKOFF=15
47+
48+ attempt=1
49+ while (( attempt <= MAX_RETRIES )) ; do
50+ if sudo dnf -y upgrade --nobest; then
51+ echo " System upgraded successfully."
52+ break
53+ else
54+ echo " Upgrade failed (attempt $attempt ). Cleaning cache and retrying..."
55+ sudo dnf clean all
56+ sudo rm -rf /var/cache/dnf/*
57+ sleep $(( _YUM_RETRY_BACKOFF * attempt ))
58+ fi
59+
60+ (( attempt++ ))
61+ done
62+
63+ if (( attempt > MAX_RETRIES )) ; then
64+ echo " ERROR: Failed to upgrade system after $MAX_RETRIES attempts."
65+ exit 1
66+ fi
4467
4568new_version=$( sudo dnf info NetworkManager | grep Version | cut -d ' :' -f 2)
4669# If NetworkManager was upgraded it needs to be restarted
Original file line number Diff line number Diff line change @@ -19,15 +19,33 @@ function extract_command() {
1919 local cmd
2020 local outdir
2121 local extract_dir
22+ local MAX_RETRIES=5
23+ local SLEEP_BETWEEN=10
2224
2325 cmd=" $1 "
2426 release_image=" $2 "
2527 outdir=" $3 "
2628
27- extract_dir=$( mktemp --tmpdir -d " installer--XXXXXXXXXX" )
28- _tmpfiles=" $_tmpfiles $extract_dir "
29+ # Retry loop for oc adm release extract to handle quay.io blips
30+ for attempt in $( seq 1 $MAX_RETRIES ) ; do
31+ extract_dir=$( mktemp --tmpdir -d " installer--XXXXXXXXXX" )
2932
30- oc adm release extract --registry-config " ${PULL_SECRET_FILE} " --command=$cmd --to " ${extract_dir} " ${release_image}
33+ if oc adm release extract --registry-config " ${PULL_SECRET_FILE} " --command=" $cmd " --to " ${extract_dir} " " ${release_image} " ; then
34+ echo " Successfully extracted $cmd "
35+ break
36+ fi
37+
38+ if [[ $attempt -lt $MAX_RETRIES ]]; then
39+ echo " Extraction failed, retrying in ${SLEEP_BETWEEN} s..."
40+ rm -rf " ${extract_dir} "
41+ sleep " ${SLEEP_BETWEEN} "
42+ else
43+ echo " Failed to extract $cmd from ${release_image} after $MAX_RETRIES attempts"
44+ return 1
45+ fi
46+ done
47+
48+ _tmpfiles=" $_tmpfiles $extract_dir "
3149
3250 if [[ $cmd == " oc.rhel8" ]]; then
3351 cmd=" oc"
Original file line number Diff line number Diff line change 617617 if [[ " $reg_state " != " running" || $restart_registry -eq 1 ]]; then
618618 sudo podman rm registry -f || true
619619
620+ MAX_RETRIES=5
621+ _PULL_RETRY_DELAY=10
622+
623+ # Try pulling the image first to tolerate quay.io errors like 504s.
624+ for attempt in $( seq 1 $MAX_RETRIES ) ; do
625+ if sudo podman pull " ${DOCKER_REGISTRY_IMAGE} " ; then
626+ echo " Successfully pulled ${DOCKER_REGISTRY_IMAGE} "
627+ break
628+ fi
629+
630+ if [[ $attempt -lt $MAX_RETRIES ]]; then
631+ echo " Pull failed, retrying in ${_PULL_RETRY_DELAY} s..."
632+ sleep " ${_PULL_RETRY_DELAY} "
633+ else
634+ echo " Failed to pull ${DOCKER_REGISTRY_IMAGE} after $MAX_RETRIES attempts"
635+ exit 1
636+ fi
637+ done
638+
620639 sudo podman run -d --name registry --net=host --privileged \
621640 -v ${REGISTRY_DIR} /data:/var/lib/registry:z \
622641 -v ${REGISTRY_DIR} /auth:/auth:z \
You can’t perform that action at this time.
0 commit comments