longhorn/scripts/load-images.sh
Phan Le f5379e2ec0 deploy, scripts: provide list of images and script to pull and push all Longhorn component images to user provided registry
This help to remove the extra dependency on different container image
registry. Docker Hub now holds all Longhorn components' images.
Also, users can easily pull all the necessary images to their
air-gap environment

Longhorn #1419

Signed-off-by: Phan Le <phan.le@rancher.com>
2020-07-14 21:39:57 -07:00

68 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
list="longhorn-images.txt"
images="longhorn-images.tar.gz"
POSITIONAL=()
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-r|--registry)
reg="$2"
shift # past argument
shift # past value
;;
-l|--image-list)
list="$2"
shift # past argument
shift # past value
;;
-i|--images)
images="$2"
shift # past argument
shift # past value
;;
-h|--help)
help="true"
shift
;;
esac
done
usage () {
echo "USAGE: $0 [--image-list longhorn-images.txt] [--images longhorn-images.tar.gz] --registry my.registry.com:5000"
echo " [-l|--images-list path] text file with list of images. 1 per line."
echo " [-l|--images path] tar.gz generated by docker save."
echo " [-r|--registry registry:port] target private registry:port. By default, registry is Docker Hub"
echo " [-h|--help] Usage message"
}
if [[ $help ]]; then
usage
exit 0
fi
if [[ -n $reg ]]; then
reg+="/"
fi
set -e -x
docker load --input ${images}
for i in $(cat ${list}); do
case $i in
*/*/*)
docker tag ${i} ${reg}longhornio/${i#*/*/}
docker push ${reg}longhornio/${i#*/*/}
;;
*/*)
docker tag ${i} ${reg}longhornio/${i#*/}
docker push ${reg}longhornio/${i#*/}
;;
*)
docker tag ${i} ${reg}longhornio/${i}
docker push ${reg}longhornio/${i}
;;
esac
done