initial service scaling down/up support
rodzic
a88ecf64ce
commit
f2f4655c62
|
@ -13,18 +13,30 @@ info "Backup starting"
|
||||||
TIME_START="$(date +%s.%N)"
|
TIME_START="$(date +%s.%N)"
|
||||||
DOCKER_SOCK="/var/run/docker.sock"
|
DOCKER_SOCK="/var/run/docker.sock"
|
||||||
if [ -S "$DOCKER_SOCK" ]; then
|
if [ -S "$DOCKER_SOCK" ]; then
|
||||||
TEMPFILE="$(mktemp)"
|
TEMPFILE_CONTAINERS="$(mktemp)"
|
||||||
docker ps --format "{{.ID}}" --filter "label=docker-volume-backup.stop-during-backup=true" > "$TEMPFILE"
|
docker ps --format "{{.ID}}" --filter "label=docker-volume-backup.stop-during-backup=true" > "$TEMPFILE_CONTAINERS"
|
||||||
CONTAINERS_TO_STOP="$(cat $TEMPFILE | tr '\n' ' ')"
|
CONTAINERS_TO_STOP="$(cat $TEMPFILE_CONTAINERS | tr '\n' ' ')"
|
||||||
CONTAINERS_TO_STOP_TOTAL="$(cat $TEMPFILE | wc -l)"
|
CONTAINERS_TO_STOP_TOTAL="$(cat $TEMPFILE_CONTAINERS | wc -l)"
|
||||||
CONTAINERS_TOTAL="$(docker ps --format "{{.ID}}" | wc -l)"
|
CONTAINERS_TOTAL="$(docker ps --format "{{.ID}}" | wc -l)"
|
||||||
rm "$TEMPFILE"
|
rm "$TEMPFILE_CONTAINERS"
|
||||||
echo "$CONTAINERS_TOTAL containers running on host in total"
|
echo "$CONTAINERS_TOTAL containers running on host in total"
|
||||||
echo "$CONTAINERS_TO_STOP_TOTAL containers marked to be stopped during backup"
|
echo "$CONTAINERS_TO_STOP_TOTAL containers marked to be stopped during backup"
|
||||||
|
|
||||||
|
TEMPFILE_SERVICES="$(mktemp)"
|
||||||
|
docker service ls --format "{{.ID}}" --filter "label=docker-volume-backup.stop-during-backup=true" > "$TEMPFILE_SERVICES"
|
||||||
|
SERVICES_TO_DOWN=$(cat $TEMPFILE_SERVICES | awk '{print}' ORS='=0 ')
|
||||||
|
SERVICES_TO_UP=$(cat $TEMPFILE_SERVICES | awk '{print}' ORS='=1 ')
|
||||||
|
SERVICES_TO_DOWN_TOTAL="$(cat $TEMPFILE_SERVICES | wc -l)"
|
||||||
|
SERVICES_TOTAL="$(docker service ls --format "{{.ID}}" | wc -l)"
|
||||||
|
rm "$TEMPFILE_SERVICES"
|
||||||
|
echo "$SERVICES_TOTAL services running on host in total"
|
||||||
|
echo "$SERVICES_TO_DOWN_TOTAL services marked to down during backup"
|
||||||
else
|
else
|
||||||
CONTAINERS_TO_STOP_TOTAL="0"
|
CONTAINERS_TO_STOP_TOTAL="0"
|
||||||
CONTAINERS_TOTAL="0"
|
CONTAINERS_TOTAL="0"
|
||||||
echo "Cannot access \"$DOCKER_SOCK\", won't look for containers to stop"
|
SERVICES_TO_DOWN_TOTAL="0"
|
||||||
|
SERVICES_TOTAL="0"
|
||||||
|
echo "Cannot access \"$DOCKER_SOCK\", won't look for containers to stop and/or services to down"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$CONTAINERS_TO_STOP_TOTAL" != "0" ]; then
|
if [ "$CONTAINERS_TO_STOP_TOTAL" != "0" ]; then
|
||||||
|
@ -32,6 +44,11 @@ if [ "$CONTAINERS_TO_STOP_TOTAL" != "0" ]; then
|
||||||
docker stop $CONTAINERS_TO_STOP
|
docker stop $CONTAINERS_TO_STOP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$SERVICES_TO_DOWN_TOTAL" != "0" ]; then
|
||||||
|
info "Scaling down services"
|
||||||
|
docker service scale $SERVICES_TO_DOWN
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -S "$DOCKER_SOCK" ]; then
|
if [ -S "$DOCKER_SOCK" ]; then
|
||||||
TEMPFILE="$(mktemp)"
|
TEMPFILE="$(mktemp)"
|
||||||
docker ps \
|
docker ps \
|
||||||
|
@ -69,6 +86,11 @@ if [ "$CONTAINERS_TO_STOP_TOTAL" != "0" ]; then
|
||||||
docker start $CONTAINERS_TO_STOP
|
docker start $CONTAINERS_TO_STOP
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$SERVICES_TO_DOWN_TOTAL" != "0" ]; then
|
||||||
|
info "Scaling up services"
|
||||||
|
docker service scale $SERVICES_TO_UP
|
||||||
|
fi
|
||||||
|
|
||||||
info "Waiting before processing"
|
info "Waiting before processing"
|
||||||
echo "Sleeping $BACKUP_WAIT_SECONDS seconds..."
|
echo "Sleeping $BACKUP_WAIT_SECONDS seconds..."
|
||||||
sleep "$BACKUP_WAIT_SECONDS"
|
sleep "$BACKUP_WAIT_SECONDS"
|
||||||
|
|
Ładowanie…
Reference in New Issue