![Mark Burnett](/assets/img/avatar_default.png)
Addresses consistency issues that appear with autoincrement fields in the existing chart, as demonstrated in [1]. It should allow automatic recovery of 2 out of the 3 (default) cluster members. It does not address automatic recovery of a complete shutdown of all cluster nodes. [1] https://review.openstack.org/#/c/465977/ Change-Id: I84c86e1862f03a6d381bf219b821ea3636049f0b
52 lines
1.5 KiB
Smarty
52 lines
1.5 KiB
Smarty
#!/usr/bin/env 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 -o pipefail
|
|
|
|
PASSWORD={{ .Values.database.root_password | quote }}
|
|
|
|
MYSQL="mysql -u root --password=${PASSWORD}"
|
|
|
|
if [ ! $($MYSQL -e 'select 1') ]; then
|
|
echo "Could not SELECT 1" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Set this late, so that we can give a nicer error message above.
|
|
set -o errexit
|
|
|
|
CLUSTER_STATUS=$($MYSQL -e "show status like 'wsrep_cluster_status'" | tail -n 1 | cut -f 2)
|
|
if [ "x${CLUSTER_STATUS}" != "xPrimary" ]; then
|
|
echo "Not in primary cluster: '${CLUSTER_STATUS}'" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
WSREP_READY=$($MYSQL -e "show status like 'wsrep_ready'" | tail -n 1 | cut -f 2)
|
|
if [ "x${WSREP_READY}" != "xON" ]; then
|
|
echo "WSREP not ready: '${WSREP_READY}'" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
WSREP_STATE=$($MYSQL -e "show status like 'wsrep_local_state_comment'" | tail -n 1 | cut -f 2)
|
|
if [ "x${WSREP_STATE}" != "xSynced" ]; then
|
|
echo "WSREP not synced: '${WSREP_STATE}'" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "${POD_NAME} ready." 1>&2
|
|
|
|
exit 0
|