blob: 17e5915048d33ba9897ad6ca010e062dedb748a3 [file] [log] [blame]
#!/usr/bin/env bash
#Variables
SCRIPT_PATH=$0
CMD=$(basename "$0")
REPO_IMAGE=${1}
#Server with connection to internet
SERVER=${2}
#User and password for docker login on $SERVER
REMOTE_USER=
REMOTE_PASSWD=
#User and password for docker login on localhost
LOCAL_USER=
LOCAL_PASSWD=
IMAGE=`sed 's/^[^.]*\.[^/]*\///g' <<< ${1}`
help()
{
cat <<EOF
${CMD} - tool for downloading image and adding it to offline nexus repository
Usage
$SCRIPT_PATH <repository>/<image>:<tag> <server>
$SCRIPT_PATH <repository>/<image>:<tag> <server> --local-repo example.repository
MANDATORY PARAMETERS:
<repository>/<image>:<tag> == image to be downloaded (e.g. nexus3.onap.org:10001/library/busybox:latest)
<server> == server with connection to internet and docker installed
OPTIONAL PARAMETERS:
--remote-user == user for docker login on <server>
--remote-passwd == password for cicd-user
--local-user == user for docker login on localhost
--local-passwd == password for local-user
--local-repo == local repository where new image should be pushed
EOF
}
if [ $# -lt 2 ]; then
help
exit 1
fi
#Set up parameters
while [[ $# -gt 2 ]]; do
case $3 in
--remote-user) REMOTE_USER=$4
;;
--remote-passwd) REMOTE_PASSWD=$4
;;
--local-user) LOCAL_USER=$4
;;
--local-passwd) LOCAL_PASSWD=$4
;;
--local-repo) LOCAL_REPO=$4
;;
-h | --help) help
exit 0
;;
*) help
exit 1
;;
esac
shift 2
done
REMOTE_USER=${REMOTE_USER:-jenkins}
REMOTE_PASSWD=${REMOTE_PASSWD:-jenkins}
LOCAL_USER=${LOCAL_USER:-admin}
LOCAL_PASSWD=${LOCAL_PASSWD:-admin123}
LOCAL_REPO=${LOCAL_REPO:-nexus3.onap.org:10001}
# Login to CICD server, pull image and push it into CICD nexus repo
/usr/bin/ssh -oStrictHostKeyChecking=no $SERVER << EOF
set -e
docker pull $REPO_IMAGE
docker tag $REPO_IMAGE $SERVER/$IMAGE
docker login -u $REMOTE_USER -p $REMOTE_PASSWD $SERVER
docker push $SERVER/$IMAGE
docker rmi $REPO_IMAGE
docker rmi $SERVER/$IMAGE
EOF
if [ $? -eq 1 ]
then
exit 1
fi
# Download image from CICD nexus repo and push it into local repo
docker pull $SERVER/$IMAGE
docker tag $SERVER/$IMAGE $LOCAL_REPO/$IMAGE
docker login -u $LOCAL_USER -p $LOCAL_PASSWD $LOCAL_REPO
docker push $LOCAL_REPO/$IMAGE
docker rmi $SERVER/$IMAGE
docker rmi $LOCAL_REPO/$IMAGE
echo 'Done Successfully'