Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor kubeSyncMongo executable documentation #1591

Merged
merged 1 commit into from
Nov 15, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 25 additions & 27 deletions docker/deployment/scripts/kubeSyncMongo.sh
Original file line number Diff line number Diff line change
@@ -1,41 +1,39 @@
#!/bin/bash

set -e
set -x

echo Mongo Dump
ssh mongo-xf mongodump
PRODCONTEXT=--context='languageforge'
megahirt marked this conversation as resolved.
Show resolved Hide resolved
QACONTEXT=--context='qa-languageforge'
PRODSERVER=$(kubectl $PRODCONTEXT get pods --selector='app=db' -o name | sed -e s'/pod\///')
megahirt marked this conversation as resolved.
Show resolved Hide resolved
QASERVER=$(kubectl $QACONTEXT get pods --selector='app=db' -o name | sed -e s'/pod\///')

echo Remove Scripture Forge data from dump
ssh mongo-xf rm -r dump/xforge
echo "Mongo Dump on production"
kubectl $PRODCONTEXT exec -c db $PRODSERVER -- bash -c "cd /data/db && mongodump"
megahirt marked this conversation as resolved.
Show resolved Hide resolved

echo Create tar file of dump
ssh mongo-xf tar -czvf mongodump.tgz dump
echo "Create tar file of dump"
kubectl $PRODCONTEXT exec -c db $PRODSERVER -- bash -c "cd /data/db && tar -czvf mongodump.tgz dump"

echo Copy tar file to local filesystem
scp mongo-xf:mongodump.tgz .
echo "Copy tgz file to local filesystem"
kubectl $PRODCONTEXT cp -c db $PRODSERVER:/data/db/mongodump.tgz .

MONGOPOD=$(kubectl get pods --selector='app=db' -o name | sed -e s'/pod\///')
echo "See how big mongo dump file is"
ls -lh mongodump.tgz

echo Copying mongodump.tgz into $MONGOPOD/data/db
kubectl cp -c db mongodump.tgz $MONGOPOD:/data/db
echo "Copy tgz file to QA"
megahirt marked this conversation as resolved.
Show resolved Hide resolved
kubectl $QACONTEXT cp -c db mongodump.tgz $QASERVER:/data/db

echo Untarring mongodump.tgz
kubectl exec -c db $MONGOPOD -- bash -c "cd /data/db \
&& tar -xvzf mongodump.tgz"
echo "Untar mongodump.tgz on QA"
kubectl $QACONTEXT exec -c db $QASERVER -- bash -c "cd /data/db && tar -xvzf mongodump.tgz"

echo MongoRestore
kubectl exec -c db $MONGOPOD -- bash -c "cd /data/db \
&& mongorestore --drop dump"
#echo "Drop and load prod data on QA"
#kubectl $QACONTEXT exec -c db $QASERVER -- bash -c "cd /data/db && mongorestore --drop dump"

echo Run Mongo migration
kubectl exec -c db $MONGOPOD -- bash -c 'mongo scriptureforge --eval "db.projects.updateMany({}, {"\$unset": {userProperties: 1}});"'
#echo "Clean up on PROD"
#kubectl $PRODCONTEXT exec -c db $PRODSERVER -- bash -c "rm -r /data/db/dump && rm /data/db/mongodump.tgz"

echo Clean up on mongo-xf remote
ssh mongo-xf rm -r dump
ssh mongo-xf rm mongodump.tgz
#echo "Clean up on QA"
#kubectl $QACONTEXT exec -c db $QASERVER -- bash -c "rm -r /data/db/dump && rm /data/db/mongodump.tgz"

echo Clean up on lf-mongo-data volume
kubectl exec -c db $MONGOPOD -- bash -c "rm -r /data/db/dump && rm /data/db/mongodump.tgz"

echo Clean up local tarball
rm mongodump.tgz
#echo "Clean up local tarball"
#rm mongodump.tgz