Skip to content

Commit

Permalink
deploy, scripts: provide list of images and script to pull and push a…
Browse files Browse the repository at this point in the history
…ll 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 longhorn#1419

Signed-off-by: Phan Le <phan.le@rancher.com>
PhanLe1010 authored and yasker committed Jul 15, 2020
1 parent b76af12 commit d2460a9
Showing 5 changed files with 140 additions and 0 deletions.
10 changes: 10 additions & 0 deletions deploy/longhorn-images-dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
longhornio/longhorn-engine:master
longhornio/longhorn-instance-manager:v1_20200514
longhornio/longhorn-manager:master
longhornio/longhorn-manager-test:master
longhornio/longhorn-test:upgrade-test.3-3.3-3.1-1
longhornio/longhorn-ui:master
longhornio/csi-attacher:v2.0.0
longhornio/csi-node-driver-registrar:v1.2.0
longhornio/csi-provisioner:v1.4.0
longhornio/csi-resizer:v0.3.0
10 changes: 10 additions & 0 deletions deploy/longhorn-images-release.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
longhornio/longhorn-engine:v1.0.1
longhornio/longhorn-instance-manager:v1_20200514
longhornio/longhorn-manager:v1.0.1
longhornio/longhorn-manager-test:v1.0.1
longhornio/longhorn-test:upgrade-test.3-3.3-3.1-1
longhornio/longhorn-ui:v1.0.1
quay.io/k8scsi/csi-attacher:v2.0.0
quay.io/k8scsi/csi-node-driver-registrar:v1.2.0
quay.io/k8scsi/csi-provisioner:v1.4.0
quay.io/k8scsi/csi-resizer:v0.3.0
9 changes: 9 additions & 0 deletions deploy/longhorn-images.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
longhornio/longhorn-engine:v1.0.1
longhornio/longhorn-instance-manager:v1_20200514
longhornio/longhorn-manager:v1.0.1
longhornio/longhorn-manager-test:v1.0.1
longhornio/longhorn-ui:v1.0.1
longhornio/csi-attacher:v2.0.0
longhornio/csi-node-driver-registrar:v1.2.0
longhornio/csi-provisioner:v1.4.0
longhornio/csi-resizer:v0.3.0
67 changes: 67 additions & 0 deletions scripts/load-images.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!/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
44 changes: 44 additions & 0 deletions scripts/save-images.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash
list="longhorn-images.txt"
images="longhorn-images.tar.gz"

POSITIONAL=()
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-i|--images)
images="$2"
shift # past argument
shift # past value
;;
-l|--image-list)
list="$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]"
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 " [-h|--help] Usage message"
}

if [[ $help ]]; then
usage
exit 0
fi

set -e -x

for i in $(cat ${list}); do
docker pull ${i}
done

docker save $(cat ${list} | tr '\n' ' ') | gzip -c > ${images}

0 comments on commit d2460a9

Please sign in to comment.