+ '[' -f /mnt/trusted-ca/ca-bundle.crt ']' + export SSL_CERT_FILE=/mnt/trusted-ca/ca-bundle.crt + SSL_CERT_FILE=/mnt/trusted-ca/ca-bundle.crt + SNAPSHOT_SPEC_FILE=/var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/snapshot_spec.json + '[' '!' -f /var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/snapshot_spec.json ']' + DATA_FILE=/var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/data.json + '[' '!' -f /var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/data.json ']' ++ jq '.components | map(select(.repositories | map(select((has("tags")|not) or (.tags | IN([])))) | length > 0)) | length' /var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/snapshot_spec.json + '[' 0 -ne 0 ']' + RESULTS_FILE=/var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/results/push-snapshot-results.json ++ mktemp + RESULTS_JSON_FILE=/tmp/tmp.llIRUtoP34 + echo '{"images":[]}' + source memory-throttle.sh + log_memory_throttle_status 80 Memory throttle: enabled with 80% threshold, current usage: 12Mi/1Gi (1%) + RUNNING_JOBS='\j' + CONCURRENT_LIMIT=20 + BURST_SIZE=5 + STABILIZATION_DELAY=2 + REQUEST_COUNT=0 + SUCCESS=true + jobs_spawned=0 + jobs_collected=0 ++ mktemp -d + TMP_RESULTS_DIR=/tmp/tmp.b6EiS1CXxX ++ jq -r '.mapping.defaults.pushSourceContainer | if . == null then true else . end' /var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/data.json + defaultPushSourceContainer=false + COPY_BUNDLE_MIGRATIONS=false ++ jq -r .componentGroup /var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/snapshot_spec.json + componentGroup=appstudio ++ jq '.components | length' /var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/snapshot_spec.json + NUM_COMPONENTS=1 Beginning "push-snapshot" for "appstudio" + printf 'Beginning "%s" for "%s"\n\n' push-snapshot appstudio + (( i = 0 )) + (( i < NUM_COMPONENTS )) ++ jq -c --argjson i 0 '.components[$i]' /var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/snapshot_spec.json + component='{"containerImage":"quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6","name":"dc-metro-map","source":{"git":{"revision":"d49914874789147eb2de9bb6a12cd5d150bfff92","url":"https://github.com/redhat-appstudio-qe/dc-metro-map-release"}},"version":"","repositories":[{"url":"quay-service.quay/test-org/released-dc-metro-map","tags":["latest"]}],"metadata":{"env_variables":["container=oci","APP_ROOT=/opt/app-root","HOME=/opt/app-root/src","NPM_RUN=start","PLATFORM=el8","NODEJS_VERSION=14","NAME=nodejs","SUMMARY=Minimal image for running Node.js 14 applications","DESCRIPTION=Node.js 14 available as container is a base platform for running various Node.js 14 applications and frameworks. Node.js is a platform built on Chrome'\''s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.","NPM_CONFIG_PREFIX=/opt/app-root/src/.npm-global","PATH=/opt/app-root/src/node_modules/.bin/:/opt/app-root/src/.npm-global/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NODE_ENV=production"],"annotations":[{"name":"org.opencontainers.image.base.digest","value":"sha256:268cc8327d61f26e18e015a58e4b36b6c8caf71a9d4b97bb4641feadbce5d36c"},{"name":"org.opencontainers.image.base.name","value":"registry.access.redhat.com/ubi8/nodejs-14-minimal:latest"}],"labels":[{"name":"architecture","value":"x86_64"},{"name":"build-date","value":"2024-08-12T05:11:40"},{"name":"com.redhat.component","value":"nodejs-14-minimal-container"},{"name":"com.redhat.deployments-dir","value":"/opt/app-root/src"},{"name":"com.redhat.dev-mode","value":"DEV_MODE:false"},{"name":"com.redhat.dev-mode.port","value":"DEBUG_PORT:5858"},{"name":"com.redhat.license_terms","value":"https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI"},{"name":"description","value":"Node.js 14 available as container is a base platform for running various Node.js 14 applications and frameworks. Node.js is a platform built on Chrome'\''s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices."},{"name":"distribution-scope","value":"public"},{"name":"help","value":"For more information visit https://github.com/sclorg/s2i-nodejs-container"},{"name":"io.buildah.version","value":"1.37.0-dev"},{"name":"io.k8s.description","value":"Node.js 14 available as container is a base platform for running various Node.js 14 applications and frameworks. Node.js is a platform built on Chrome'\''s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices."},{"name":"io.k8s.display-name","value":"Node.js 14 Minimal"},{"name":"io.openshift.expose-services","value":"8080:http"},{"name":"io.openshift.s2i.scripts-url","value":"image:///usr/libexec/s2i"},{"name":"io.openshift.tags","value":"builder,nodejs,nodejs14"},{"name":"io.s2i.scripts-url","value":"image:///usr/libexec/s2i"},{"name":"maintainer","value":"SoftwareCollections.org "},{"name":"name","value":"ubi8/nodejs-14-minimal"},{"name":"release","value":"97"},{"name":"summary","value":"Minimal image for running Node.js 14 applications"},{"name":"url","value":"https://access.redhat.com/containers/#/registry.access.redhat.com/ubi8/nodejs-14-minimal/images/1-97"},{"name":"vcs-ref","value":"d49914874789147eb2de9bb6a12cd5d150bfff92"},{"name":"vcs-type","value":"git"},{"name":"vendor","value":"Red Hat, Inc."},{"name":"version","value":"1"}],"media_type":"application/vnd.oci.image.config.v1+json"}}' ++ jq -r .containerImage + containerImage=quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 ++ echo quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 ++ cut -d / -f 1 + registry=quay-service.quay + source_repo=quay-service.quay/test-org/dcmetromap ++ mktemp + SOURCE_AUTH_FILE=/tmp/tmp.dGP9sNtYJt + select-oci-auth quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 + jq -c '.auths."quay-service.quay/test-org/dcmetromap" = .auths."quay-service.quay" | del(.auths."quay-service.quay")' Using token for quay-service.quay ++ get-image-architectures quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 + arch_json='{"platform":{"architecture":"amd64","os":"linux"},"digest":"sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6","multiarch":false}' ++ jq -s 'map(.platform.architecture)' + arches='[ "amd64" ]' ++ jq -s 'map(.platform.os)' + oses='[ "linux" ]' ++ jq -r '.[0]' + os=linux ++ jq -r '.[0]' + arch=amd64 ++ jq -r .name + name=dc-metro-map ++ skopeo inspect --retry-times 3 --raw docker://quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 ++ jq -r .mediaType + media_type=application/vnd.oci.image.manifest.v1+json + oras_args=() + platform= + [[ application/vnd.oci.image.manifest.v1+json == \a\p\p\l\i\c\a\t\i\o\n\/\v\n\d\.\d\o\c\k\e\r\.\d\i\s\t\r\i\b\u\t\i\o\n\.\m\a\n\i\f\e\s\t\.\l\i\s\t\.\v\2\+\j\s\o\n ]] + [[ application/vnd.oci.image.manifest.v1+json == \a\p\p\l\i\c\a\t\i\o\n\/\v\n\d\.\o\c\i\.\i\m\a\g\e\.\i\n\d\e\x\.\v\1\+\j\s\o\n ]] ++ oras resolve --registry-config /tmp/tmp.dGP9sNtYJt quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 + origin_digest=sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 + jq --arg i 0 --argjson arches '[ "amd64" ]' --argjson oses '[ "linux" ]' --arg name dc-metro-map --arg sha sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 '.images[$i|tonumber] += {"arches": $arches, "oses": $oses, "name": $name, "shasum": $sha, "urls": []}' /tmp/tmp.llIRUtoP34 + mv /tmp/tmp.llIRUtoP34.tmp /tmp/tmp.llIRUtoP34 ++ jq -r .pushSourceContainer + pushSourceContainer=null ++ jq 'has("pushSourceContainer")' + hasPushSourceContainer=false + [[ null == \t\r\u\e ]] + [[ false == \f\a\l\s\e ]] + [[ false == \t\r\u\e ]] + migration_digest= + migration_tag= + [[ false == \t\r\u\e ]] ++ jq -c '.repositories | length' + NUM_REPOS=1 + (( j = 0 )) + (( j < NUM_REPOS )) ++ jq -c --argjson j 0 '.repositories[$j]' + repository='{"url":"quay-service.quay/test-org/released-dc-metro-map","tags":["latest"]}' ++ jq .tags + imageTags='[ "latest" ]' ++ jq -r .url + repository_url=quay-service.quay/test-org/released-dc-metro-map + '[' -n '' ']' ++ jq -r '.[]' + for tag in $(jq -r '.[]' <<< "$imageTags") + wait_for_slot + wait_for_memory 80 + (( 0 >= 20 )) + (( ++REQUEST_COUNT )) + echo 'Request Count: 1' + jobs_spawned=1 Request Count: 1 + (( jobs_spawned % BURST_SIZE == 0 )) + '[' -n '' ']' + [[ false == \t\r\u\e ]] + push_image sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 dc-metro-map quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 quay-service.quay/test-org/released-dc-metro-map latest '' + (( j++ )) + (( j < NUM_REPOS )) + (( i++ )) + (( i < NUM_COMPONENTS )) + echo 'Waiting for all jobs to complete....' + (( jobs_collected < jobs_spawned )) Waiting for all jobs to complete.... + wait -n + jobs_collected=1 + (( jobs_collected < jobs_spawned )) + echo 'Printing outputs for each push image' Printing outputs for each push image + for file in "$TMP_RESULTS_DIR"/*.out ++ basename /tmp/tmp.b6EiS1CXxX/dc-metro-map-latest.out .out + echo '=== dc-metro-map-latest ===' + cat /tmp/tmp.b6EiS1CXxX/dc-metro-map-latest.out === dc-metro-map-latest === ++ mktemp + DEST_AUTH_FILE=/tmp/tmp.fdAPZHXDiP ++ echo quay-service.quay/test-org/released-dc-metro-map ++ cut -d / -f 1 + registry=quay-service.quay + '[' quay-service.quay = docker.io ']' + select-oci-auth quay-service.quay/test-org/released-dc-metro-map + jq -c '.auths."quay-service.quay/test-org/released-dc-metro-map" = .auths."quay-service.quay" | del(.auths."quay-service.quay")' Using token for quay-service.quay + oras_args=() + '[' -n '' ']' ++ oras resolve --registry-config /tmp/tmp.fdAPZHXDiP quay-service.quay/test-org/released-dc-metro-map:latest Error response from registry: failed to resolve digest: quay-service.quay/test-org/released-dc-metro-map:latest: not found ++ true + destination_digest= + [[ '' != \s\h\a\2\5\6\:\5\4\4\2\5\9\b\e\8\b\c\d\9\e\6\a\2\0\6\6\2\2\4\b\8\0\5\d\8\5\4\d\8\6\3\0\6\4\c\9\b\6\4\f\a\3\a\8\7\b\f\c\d\0\3\f\5\b\0\f\2\8\e\6 ]] + printf '* Pushing component: %s to %s:%s\n' dc-metro-map quay-service.quay/test-org/released-dc-metro-map latest * Pushing component: dc-metro-map to quay-service.quay/test-org/released-dc-metro-map:latest ++ mktemp -d + DOCKER_CONFIG=/tmp/tmp.oXzZIBPKgN + export DOCKER_CONFIG + jq -s 'reduce .[] as $item ({}; . * $item)' /tmp/tmp.dGP9sNtYJt /tmp/tmp.fdAPZHXDiP + [[ false == \t\r\u\e ]] + attempt=0 + '[' 0 -gt 3 ']' + [[ false == \t\r\u\e ]] + cosign copy -f quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 quay-service.quay/test-org/released-dc-metro-map:latest Copying quay-service.quay/test-org/dcmetromap:sha256-544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6.att to quay-service.quay/test-org/released-dc-metro-map:sha256-544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6.att... Copying quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 to quay-service.quay/test-org/released-dc-metro-map:sha256-544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6... Copying quay-service.quay/test-org/dcmetromap:sha256-544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6.sig to quay-service.quay/test-org/released-dc-metro-map:sha256-544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6.sig... Copying quay-service.quay/test-org/dcmetromap:sha256-544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6.sbom to quay-service.quay/test-org/released-dc-metro-map:sha256-544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6.sbom... Copying quay-service.quay/test-org/dcmetromap@sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6 to quay-service.quay/test-org/released-dc-metro-map:latest... + break + '[' 0 -gt 3 ']' + unset DOCKER_CONFIG + jq -n --arg name dc-metro-map --arg url quay-service.quay/test-org/released-dc-metro-map:latest '{name: $name, url: $url}' + echo + '[' true '!=' true ']' ++ mktemp + PUSHES_FILE=/tmp/tmp.VANHzpfjJa + jq -s . /tmp/tmp.b6EiS1CXxX/dc-metro-map-latest.json + jq --slurpfile PUSHES /tmp/tmp.VANHzpfjJa ' reduce $PUSHES[0][] as $p (.; (.images[] | select(.name == $p.name).urls) += [$p.url]) ' /tmp/tmp.llIRUtoP34 + tee /var/workdir/release/53ad2f30-f27c-434b-9426-76b84e39483a/results/push-snapshot-results.json { "images": [ { "arches": [ "amd64" ], "oses": [ "linux" ], "name": "dc-metro-map", "shasum": "sha256:544259be8bcd9e6a2066224b805d854d863064c9b64fa3a87bfcd03f5b0f28e6", "urls": [ "quay-service.quay/test-org/released-dc-metro-map:latest" ] } ] } + rm -f /tmp/tmp.llIRUtoP34 /tmp/tmp.llIRUtoP34.tmp /tmp/tmp.VANHzpfjJa + printf 'Completed "%s" for "%s"\n\n' push-snapshot appstudio Completed "push-snapshot" for "appstudio"