18 lines
653 B
Bash
18 lines
653 B
Bash
#!/usr/bin/env bash
|
|
# label nodes into pools based on hostname: *wordpressPool*/*mysqlPool*/*redisPool*/*phpPool*/*nginxPool*
|
|
set -euo pipefail
|
|
docker node inspect -f '{{ .ID }} {{ .Description.Hostname }} {{ .Spec.Role }}' $(docker node ls -q) \
|
|
| while read -r id host role; do
|
|
[[ "$role" == "worker" ]] || continue
|
|
case "$host" in
|
|
*wordPressPool*) val=wordpress ;;
|
|
*mysqlPool*) val=mysql ;;
|
|
*redisPool*) val=redis ;;
|
|
*phpPool*) val=php ;;
|
|
*nginxPool*) val=nginx ;;
|
|
*) val="" ;;
|
|
esac
|
|
[[ -n "$val" ]] && docker node update --label-add "pool=$val" "$id"
|
|
done
|
|
echo "Worker labels updated."
|