Skip to content

Commit

Permalink
PS-8638 Changes for mysqlrouter to work as a part of PS distribution
Browse files Browse the repository at this point in the history
  • Loading branch information
surbhat1595 committed May 9, 2023
1 parent 63b5909 commit 2442731
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
5 changes: 4 additions & 1 deletion mysql-router/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,10 @@ COPY dockerdir /

RUN set -ex; \
mkdir -p /tmp/mysqlrouter/run /var/lib/mysqlrouter ; \
chown -R 1001:1001 /tmp/mysqlrouter/run /var/lib/mysqlrouter
chown -R 1001:1001 /tmp/mysqlrouter/run /var/lib/mysqlrouter ; \
chmod -R 777 /var/log/mysqlrouter ; \
chmod -R 777 /tmp/mysqlrouter ; \
chmod -R 777 /etc/mysqlrouter

VOLUME ["/var/lib/mysqlrouter"]

Expand Down
37 changes: 37 additions & 0 deletions mysql-router/dockerdir/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,41 @@ if [ -n "$KUBERNETES_SERVICE_HOST" ]; then
sed -i "/\[logger\]/a destination=/dev/stdout" ${ROUTER_DIR}/mysqlrouter.conf
fi

if [ "$1" = 'mysqlrouter' ]; then
if [[ -z $MYSQL_HOST || -z $MYSQL_PORT || -z $MYSQL_USER || -z $MYSQL_PASSWORD ]]; then
echo "We require all of"
echo " MYSQL_HOST"
echo " MYSQL_PORT"
echo " MYSQL_USER"
echo " MYSQL_PASSWORD"
echo "to be set. Exiting."
exit 1
fi

PASSFILE=$(mktemp)
echo "$MYSQL_PASSWORD" > "$PASSFILE"
DEFAULTS_EXTRA_FILE=$(mktemp)
cat >"$DEFAULTS_EXTRA_FILE" <<EOF
[client]
password="$MYSQL_PASSWORD"
EOF
max_tries=12
attempt_num=0
until (echo > "/dev/tcp/$MYSQL_HOST/$MYSQL_PORT") >/dev/null 2>&1; do
echo "Waiting for mysql server $MYSQL_HOST ($attempt_num/$max_tries)"
sleep $(( attempt_num++ ))
if (( attempt_num == max_tries )); then
exit 1
fi
done
echo "Succesfully contacted mysql server at $MYSQL_HOST. Checking for cluster state."
mysqlrouter --bootstrap "$MYSQL_USER@$MYSQL_HOST:$MYSQL_PORT" --directory /tmp/mysqlrouter --force < "$PASSFILE"
sed -i -e 's/logging_folder=.*$/logging_folder=/' /tmp/mysqlrouter/mysqlrouter.conf
echo "Starting mysql-router."
exec "$@" --config /tmp/mysqlrouter/mysqlrouter.conf
fi

rm -f "$PASSFILE"
rm -f "$DEFAULTS_EXTRA_FILE"
unset DEFAULTS_EXTRA_FILE
exec "$@"

0 comments on commit 2442731

Please sign in to comment.