67 lines
2.2 KiB
Smarty
67 lines
2.2 KiB
Smarty
#!/bin/bash
|
|
# Copyright 2017 The Openstack-Helm Authors.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
set -ex
|
|
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
|
|
|
|
sudo chown mysql: /var/lib/mysql
|
|
rm -rf /var/lib/mysql/lost+found
|
|
|
|
{{- if .Values.development.enabled }}
|
|
REPLICAS=1
|
|
{{- else }}
|
|
REPLICAS={{ .Values.replicas }}
|
|
{{- end }}
|
|
PETSET_NAME={{ printf "%s" .Values.service_name }}
|
|
INIT_MARKER="/var/lib/mysql/init_done"
|
|
|
|
function join_by { local IFS="$1"; shift; echo "$*"; }
|
|
|
|
# Remove mariadb.pid if exists
|
|
if [[ -f /var/lib/mysql/mariadb.pid ]]; then
|
|
if [[ `pgrep -c $(cat /var/lib/mysql/mariadb.pid)` -eq 0 ]]; then
|
|
rm -vf /var/lib/mysql/mariadb.pid
|
|
fi
|
|
fi
|
|
|
|
if [ "$REPLICAS" -eq 1 ] ; then
|
|
if [[ ! -f ${INIT_MARKER} ]]; then
|
|
cd /var/lib/mysql
|
|
echo "Creating one-instance MariaDB."
|
|
bash /tmp/bootstrap-db.sh
|
|
touch ${INIT_MARKER}
|
|
fi
|
|
exec mysqld_safe --defaults-file=/etc/my.cnf \
|
|
--console \
|
|
--wsrep-new-cluster \
|
|
--wsrep_cluster_address='gcomm://'
|
|
else
|
|
|
|
# give the seed more of a chance to be ready by the time
|
|
# we start the first pet so we succeed on the first pass
|
|
# a little hacky, but prevents restarts as we aren't waiting
|
|
# for job completion here so I'm not sure what else
|
|
# to look for
|
|
sleep 30
|
|
|
|
export WSREP_OPTIONS=`python /tmp/peer-finder.py mariadb 0`
|
|
exec mysqld --defaults-file=/etc/my.cnf \
|
|
--console \
|
|
--bind-address="0.0.0.0" \
|
|
--wsrep_node_address="${POD_IP}:{{ .Values.network.port.wsrep }}" \
|
|
--wsrep_provider_options="gcache.size=512M; gmcast.listen_addr=tcp://${POD_IP}:{{ .Values.network.port.wsrep }}" \
|
|
$WSREP_OPTIONS
|
|
fi
|