Create 13-12-mongo-configmap.yaml
This commit is contained in:
parent
7534eeec06
commit
73227fcad9
51
13-12-mongo-configmap.yaml
Normal file
51
13-12-mongo-configmap.yaml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: mongo-init
|
||||||
|
data:
|
||||||
|
init.sh: |
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Need to wait for the readiness health check to pass so that the
|
||||||
|
# mongo names resolve. This is kind of wonky.
|
||||||
|
until ping -c 1 ${HOSTNAME}.mongo; do
|
||||||
|
echo "waiting for DNS (${HOSTNAME}.mongo)..."
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
until /usr/bin/mongo --eval 'printjson(db.serverStatus())'; do
|
||||||
|
echo "connecting to local mongo..."
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
echo "connected to local."
|
||||||
|
|
||||||
|
HOST=mongo-0.mongo:27017
|
||||||
|
|
||||||
|
until /usr/bin/mongo --host=${HOST} --eval 'printjson(db.serverStatus())'; do
|
||||||
|
echo "connecting to remote mongo..."
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
echo "connected to remote."
|
||||||
|
|
||||||
|
if [[ "${HOSTNAME}" != 'mongo-0' ]]; then
|
||||||
|
until /usr/bin/mongo --host=${HOST} --eval="printjson(rs.status())" \
|
||||||
|
| grep -v "no replset config has been received"; do
|
||||||
|
echo "waiting for replication set initialization"
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
echo "adding self to mongo-0"
|
||||||
|
/usr/bin/mongo --host=${HOST} \
|
||||||
|
--eval="printjson(rs.add('${HOSTNAME}.mongo'))"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${HOSTNAME}" == 'mongo-0' ]]; then
|
||||||
|
echo "initializing replica set"
|
||||||
|
/usr/bin/mongo --eval="printjson(rs.initiate(\
|
||||||
|
{'_id': 'rs0', 'members': [{'_id': 0, \
|
||||||
|
'host': 'mongo-0.mongo:27017'}]}))"
|
||||||
|
fi
|
||||||
|
echo "initialized"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
sleep 3600
|
||||||
|
done
|
||||||
Loading…
Reference in New Issue
Block a user