rancher-charts/scripts/image-mirror

24 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
for f in packages/*; do
if [[ -f ${f}/package.yaml ]]; then
if [[ -n $(cat ${f}/package.yaml | yq r - imageMirror) ]]; then
for (( i=0; i<$(cat ${f}/package.yaml | yq r - imageMirror --length); i++ )); do
name=$(cat ${f}/package.yaml | yq r - imageMirror.[$i].name)
for (( j=0; j<$(cat ${f}/package.yaml | yq r - imageMirror.[$i].images --length); j++ )); do
arch=$(cat ${f}/package.yaml | yq r - imageMirror.[$i].images.[$j].arch)
os=$(cat ${f}/package.yaml | yq r - imageMirror.[$i].images.[$j].os)
original=$(cat ${f}/package.yaml | yq r - imageMirror.[$i].images.[$j].original)
tag=$(cat ${f}/package.yaml | yq r - imageMirror.[$i].images.[$j].tag)
docker pull $original:$tag
docker tag $original:$tag $name-$arch:$tag
docker push $name-$arch:$tag
docker manifest create --amend $name:$tag $name-$arch:$tag
docker manifest annotate $name:$tag $name-$arch:$tag --arch $arch --os $os
done
docker manifest push -p $name:$tag
done
fi
fi
done