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