#!/bin/bash list="longhorn-images.txt" CONTAINER_CLI=${CONTAINER_CLI:-docker} 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 ;; *) echo "Error! invalid flag: ${key}" help="true" break ;; 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 " [-i|--images path] tar.gz generated by docker/podman save. If empty, the script will try to find images in local images" echo " [-r|--registry registry:port] target private registry:port. By default, registry is Docker Hub" echo " [-h|--help] Usage message" echo "" echo "To use podman instead of docker set the environment variable CONTAINER_CLI=podman" } if [[ $help ]]; then usage exit 0 fi if [[ -n $reg ]]; then reg+="/" fi set -e -x if [[ $images ]]; then $CONTAINER_CLI load --input ${images} fi for i in $(cat ${list}); do case $i in */*/*) $CONTAINER_CLI tag ${i} ${reg}longhornio/${i#*/*/} $CONTAINER_CLI push ${reg}longhornio/${i#*/*/} ;; */*) $CONTAINER_CLI tag ${i} ${reg}longhornio/${i#*/} $CONTAINER_CLI push ${reg}longhornio/${i#*/} ;; *) $CONTAINER_CLI tag ${i} ${reg}longhornio/${i} $CONTAINER_CLI push ${reg}longhornio/${i} ;; esac done