github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/mongodb/scripts/replicaset-setup.tpl (about) 1 #!/bin/sh 2 3 {{- $mongodb_root := getVolumePathByName ( index $.podSpec.containers 0 ) "data" }} 4 {{- $mongodb_port_info := getPortByName ( index $.podSpec.containers 0 ) "mongodb" }} 5 6 # require port 7 {{- $mongodb_port := 27017 }} 8 {{- if $mongodb_port_info }} 9 {{- $mongodb_port = $mongodb_port_info.containerPort }} 10 {{- end }} 11 12 PORT={{ $mongodb_port }} 13 MONGODB_ROOT={{ $mongodb_root }} 14 RPL_SET_NAME=$(echo $KB_POD_NAME | grep -o ".*-"); 15 RPL_SET_NAME=${RPL_SET_NAME%-}; 16 mkdir -p $MONGODB_ROOT/db 17 mkdir -p $MONGODB_ROOT/logs 18 mkdir -p $MONGODB_ROOT/tmp 19 20 BACKUPFILE=$MONGODB_ROOT/db/mongodb.backup 21 PORT_FOR_RESTORE=27027 22 CLIENT=`which mongosh>/dev/null&&echo mongosh||echo mongo` 23 if [ -f $BACKUPFILE ] 24 then 25 mongod --bind_ip_all --port $PORT_FOR_RESTORE --dbpath $MONGODB_ROOT/db --directoryperdb --logpath $MONGODB_ROOT/logs/mongodb.log --logappend --pidfilepath $MONGODB_ROOT/tmp/mongodb.pid& 26 until $CLIENT --quiet --port $PORT_FOR_RESTORE --eval "print('restore process is ready')"; do sleep 1; done 27 PID=`cat $MONGODB_ROOT/tmp/mongodb.pid` 28 29 $CLIENT --quiet --port $PORT_FOR_RESTORE local --eval "db.system.replset.deleteOne({})" 30 $CLIENT --quiet --port $PORT_FOR_RESTORE local --eval "db.system.replset.find()" 31 $CLIENT --quiet --port $PORT_FOR_RESTORE admin --eval 'db.dropUser("root", {w: "majority", wtimeout: 4000})' || true 32 kill $PID 33 wait $PID 34 echo "INFO: restore set-up configuration successfully." 35 rm $BACKUPFILE 36 fi 37 38 exec mongod --bind_ip_all --port $PORT --replSet $RPL_SET_NAME --config /etc/mongodb/mongodb.conf