initial service scaling down/up support

master
miklobit 2020-12-14 02:14:56 +00:00
rodzic a88ecf64ce
commit f2f4655c62
1 zmienionych plików z 28 dodań i 6 usunięć

Wyświetl plik

@ -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"