Apply validations
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
exec > >(tee -a script.log) 2>&1
|
||||
|
||||
|
||||
# Install the required packages #
|
||||
# --------------------------------------------------------------
|
||||
apk upgrade && apk add curl wget zip unzip
|
||||
@@ -10,17 +12,33 @@ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s htt
|
||||
# ----------------------------------------------------------------------
|
||||
export NEW_URL=https://$URL_DOMAIN
|
||||
export CLUSTER=caresage-eks-cluster-$ENV
|
||||
|
||||
if [[ "$ENV" = "prod" ]] ; then
|
||||
export APP=`echo $URL_DOMAIN | awk -F[.-] '{print $2}'`
|
||||
else
|
||||
export APP=`echo $URL_DOMAIN | awk -F[.-] '{print $3}'`
|
||||
fi
|
||||
|
||||
export NAMESPACE=$APP-web
|
||||
|
||||
export REPO=$BITBUCKET_REPO_SLUG
|
||||
export REPLACE=`echo $NEW_URL | awk -F[./] '{print $4"."$5}'`
|
||||
export MAIN_DOMAIN=`echo $NEW_URL | awk -F[./] '{print $4"."$5}'`
|
||||
export URL_DOMAIN=$URL_DOMAIN
|
||||
# ---------------------------
|
||||
echo "export NEW_URL=https://$URL_DOMAIN" >> setenv.sh
|
||||
|
||||
if [[ "$ENV" = "prod" ]] ; then
|
||||
echo "export APP=`echo $URL_DOMAIN | awk -F[.-] '{print $2}'`" >> setenv.sh
|
||||
else
|
||||
echo "export APP=`echo $URL_DOMAIN | awk -F[.-] '{print $3}'`" >> setenv.sh
|
||||
fi
|
||||
|
||||
echo "export NAMESPACE=$APP-web" >> setenv.sh
|
||||
|
||||
echo "export REPO=$BITBUCKET_REPO_SLUG" >> setenv.sh
|
||||
echo "export REPLACE=`echo $NEW_URL | awk -F[./] '{print $4"."$5}'`" >> setenv.sh
|
||||
echo "export MAIN_DOMAIN=`echo $NEW_URL | awk -F[./] '{print $4"."$5}'`" >> setenv.sh
|
||||
echo "export URL_DOMAIN=$URL_DOMAIN" >> setenv.sh
|
||||
echo "export TOKEN=$TOKEN" >> setenv.sh
|
||||
# ---------------------------------------------------------------
|
||||
@@ -42,21 +60,37 @@ cat ./setenv.sh
|
||||
opt=$1
|
||||
deploy_version=$2
|
||||
|
||||
case $opt in
|
||||
# Check if it is already running #
|
||||
# -------------------------------------
|
||||
aws eks update-kubeconfig --name caresage-eks-cluster-$ENV --region us-east-1
|
||||
echo "common-job-pod will be deleted if already there and thus make sure you run single common job for a given repo"
|
||||
echo ""
|
||||
|
||||
if ( kubectl get po -A | grep common-job-pod ) && [[ "$SUBDOMAIN" = "www" ]] ; then
|
||||
echo "common-job-pod-running and maindomain is $URL_DOMAIN and common-job-pod will not be deleted"
|
||||
else
|
||||
kubectl get po -A | grep common-job-pod && kubectl delete po common-job-pod -n $NAMESPACE || echo "----common-job-pod-t0-be-created"
|
||||
fi
|
||||
|
||||
# validation checks #
|
||||
#----------------------------------
|
||||
#validation () { chmod 755 ./validation.sh && ./validation.sh; } && validation
|
||||
|
||||
case $opt in
|
||||
|
||||
wp-auto-patch)
|
||||
|
||||
# The auto patch to be executed for dev01 to be specific
|
||||
# ----------------------------------------------------------
|
||||
if [[ "$SUBDOMAIN" != "dev01" ]] ; then echo VALIDATION-NOPASS-AUTO-PATCH-IS-FOR-DEV01 && exit 9 ; else echo VALIDATION-PASS-AUTO-PATCH-IS-FOR-DEV01;fi
|
||||
|
||||
aws eks update-kubeconfig --name caresage-eks-cluster-$ENV --region us-east-1
|
||||
kubectl apply -f build/$ENV/pod.tpl && sleep 15
|
||||
kubectl apply -f build/$ENV/pod.tpl && kubectl apply -f build/$ENV/pvc.yml && sleep 15
|
||||
kubectl cp setenv.sh $NAMESPACE/common-job-pod:/tmp/setenv.sh
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'chmod 755 /tmp/setenv.sh'
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- apt update
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- apt install wget zip unzip curl git rsync -y
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh;
|
||||
cd /tmp;
|
||||
@@ -70,22 +104,29 @@ git add --all && git commit -m "auto-patch $VERSION-$ENV-$SUBDOMAIN-$(date +%Y-
|
||||
|
||||
kubectl delete po common-job-pod -n $NAMESPACE
|
||||
|
||||
cat script.log | egrep -v -i "warning|SQL|create mode|rewrite" | egrep -i "fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
cat script.log | egrep -v "SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
|
||||
;;
|
||||
|
||||
subdomain_deploy)
|
||||
|
||||
echo "Deploy the wordpress source code fromo the branch to pvc mount of subdomain..."
|
||||
echo "Deploy the wordpress source code from the branch to pvc mount of subdomain..."
|
||||
|
||||
aws eks update-kubeconfig --name caresage-eks-cluster-$ENV --region us-east-1
|
||||
kubectl apply -f build/$ENV/pod.tpl && sleep 15 && echo pod-created
|
||||
echo "common-job-pod will be deleted if already there and thus make sure you run single common job for a given repo"
|
||||
echo ""
|
||||
kubectl get po -A | grep common-job-pod && kubectl delete po common-job-pod -n $NAMESPACE || echo ----common-job-pod-t0-be-created
|
||||
|
||||
|
||||
kubectl apply -f build/$ENV/pod.tpl && kubectl apply -f build/$ENV/pvc.yml && sleep 15 && echo pod-created
|
||||
|
||||
kubectl cp wp $NAMESPACE/common-job-pod:/tmp && echo "wp copy to /tmp done" || exit 9
|
||||
kubectl cp setenv.sh $NAMESPACE/common-job-pod:/tmp/setenv.sh && echo "setenv copy done" || exit 9
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'chmod 755 /tmp/setenv.sh'
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh ; cp -rf /tmp/wp/* /usr/share/nginx/subdomain/$SUBDOMAIN/'
|
||||
echo $SUBDOMAIN | grep www && echo "maindomain $URL_DOMAIN" || kubectl delete po common-job-pod -n $NAMESPACE
|
||||
|
||||
cat script.log | egrep -v -i "warning|SQL|create mode|rewrite" | egrep -i "fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
cat script.log | egrep -v "SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
|
||||
;;
|
||||
|
||||
@@ -94,7 +135,7 @@ mysql-backup)
|
||||
|
||||
echo "Running mysql backup with s3..."
|
||||
aws eks update-kubeconfig --name caresage-eks-cluster-$ENV --region us-east-1
|
||||
kubectl apply -f build/$ENV/pod.tpl && sleep 15
|
||||
kubectl apply -f build/$ENV/pod.tpl && kubectl apply -f build/$ENV/pvc.yml && sleep 15
|
||||
|
||||
kubectl cp setenv.sh $NAMESPACE/common-job-pod:/tmp/setenv.sh
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'chmod 755 /tmp/setenv.sh'
|
||||
@@ -113,14 +154,14 @@ curl --request POST -F files=@"$FILE" --url "https://api.bitbucket.org/2.0/repo
|
||||
|
||||
kubectl delete po common-job-pod -n $NAMESPACE
|
||||
|
||||
cat script.log | egrep -v -i "warning|SQL|create mode|rewrite" | egrep -i "fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
cat script.log | egrep -v "SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
|
||||
;;
|
||||
|
||||
wp-data-backup)
|
||||
|
||||
aws eks update-kubeconfig --name caresage-eks-cluster-$ENV --region us-east-1
|
||||
kubectl apply -f build/$ENV/pod.tpl && sleep 15
|
||||
kubectl apply -f build/$ENV/pod.tpl && kubectl apply -f build/$ENV/pvc.yml && sleep 15
|
||||
kubectl cp setenv.sh $NAMESPACE/common-job-pod:/tmp/setenv.sh
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'chmod 755 /tmp/setenv.sh'
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- apt update
|
||||
@@ -130,15 +171,13 @@ kubectl cp $NAMESPACE/common-job-pod:/tmp/upload.zip $NAMESPACE-$VERSION-$ENV-$S
|
||||
FILE=`ls $NAMESPACE-*.zip`
|
||||
aws s3 cp $FILE s3://commonjobs/$NAMESPACE/$opt/
|
||||
kubectl delete po common-job-pod -n $NAMESPACE
|
||||
cat script.log | egrep -v -i "warning|SQL|create mode|rewrite" | egrep -i "fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
cat script.log | egrep -v "SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
;;
|
||||
|
||||
|
||||
|
||||
mysql-restore)
|
||||
|
||||
aws eks update-kubeconfig --name caresage-eks-cluster-$ENV --region us-east-1
|
||||
kubectl apply -f build/$ENV/pod.tpl && sleep 15
|
||||
kubectl apply -f build/$ENV/pod.tpl && kubectl apply -f build/$ENV/pvc.yml && sleep 15
|
||||
kubectl cp setenv.sh $NAMESPACE/common-job-pod:/tmp/setenv.sh
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'chmod 755 /tmp/setenv.sh'
|
||||
|
||||
@@ -152,7 +191,6 @@ kubectl exec common-job-pod -n $NAMESPACE -- apt install zip wget unzip curl mar
|
||||
curl -s -L -O -H "Authorization: Bearer $TOKEN" https://api.bitbucket.org/2.0/repositories/connectamerica/$REPO/downloads/$FILE && echo file_downloaded || aws s3 cp s3://commonjobs/$NAMESPACE/mysql-backup/$FILE $FILE
|
||||
|
||||
|
||||
|
||||
kubectl cp $FILE $NAMESPACE/common-job-pod:/tmp/$FILE
|
||||
|
||||
#Create schema if not present #
|
||||
@@ -161,29 +199,41 @@ kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; mysql -h $
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; export FILE=`ls /tmp/*.sql.gz` ; gunzip -c $FILE | mysql -h $DB_HOST --user=$DB_USER --password=$DB_PASSWORD $SUBDOMAIN'
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar ; chmod u+x wp-cli.phar;mv wp-cli.phar /usr/local/bin/wp; php /usr/local/bin/wp --info'
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; OLD_URL=`wp option get siteurl --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN`; echo "export OLD_URL=$OLD_URL" >> /tmp/setenv.sh; echo "export FIND=$(echo $OLD_URL|cut -d. -f2,3)" >> /tmp/setenv.sh; echo "export OLD_URL_DOMAIN=$(echo $OLD_URL| cut -d/ -f3)" >> /tmp/setenv.sh '
|
||||
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'cat /tmp/setenv.sh ; . /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN "$FIND" "$REPLACE" --all-tables'
|
||||
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; OLD_URL=`wp option get siteurl --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN`; echo "export OLD_URL=$OLD_URL" >> /tmp/setenv.sh; echo "export FIND=$(echo $OLD_URL|cut -d. -f2,3)" >> /tmp/setenv.sh; echo "export OLD_URL_DOMAIN=$(echo $OLD_URL| cut -d/ -f3)" >> /tmp/setenv.sh '
|
||||
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; OLD_URL=`wp option get siteurl --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN`; echo "export OLD_URL=$OLD_URL" >> /tmp/setenv.sh; echo "export FIND=$(echo $OLD_URL|cut -d. -f2,3)" >> /tmp/setenv.sh; echo "export OLD_MAIN_DOMAIN=$(echo $OLD_URL|cut -d. -f2,3)" >> /tmp/setenv.sh; echo "export OLD_URL_DOMAIN=$(echo $OLD_URL| cut -d/ -f3)" >> /tmp/setenv.sh; echo "export OLD_SUBDOMAIN=$(echo $OLD_URL| cut -d/ -f3|cut -d. -f1)" >> /tmp/setenv.sh'
|
||||
# -----------------------------------------------------------------------------------------
|
||||
kubectl cp $NAMESPACE/common-job-pod:/tmp/setenv.sh setenv.sh && . ./setenv.sh
|
||||
# -----------------------------------------------------------------------------------------
|
||||
if [[ "$OLD_SUBDOMAIN" = "www" ]] && [[ "$SUBDOMAIN" = "www" ]]; then
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'cat /tmp/setenv.sh ; . /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN "$OLD_URL_DOMAIN" "$URL_DOMAIN" --all-tables'
|
||||
# --------------------------------------------------------------------------------------------
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'cat /tmp/setenv.sh ; . /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN ".$OLD_MAIN_DOMAIN" ".$MAIN_DOMAIN" --all-tables'
|
||||
|
||||
elif [[ "$OLD_SUBDOMAIN" = "www" ]] && [[ "$SUBDOMAIN" != "www" ]]; then
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'cat /tmp/setenv.sh ; . /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN "$OLD_URL_DOMAIN" "$URL_DOMAIN" --all-tables'
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'cat /tmp/setenv.sh ; . /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN ".$OLD_MAIN_DOMAIN" ".$URL_DOMAIN" --all-tables'
|
||||
|
||||
elif [[ "$OLD_SUBDOMAIN" != "www" ]] && [[ "$SUBDOMAIN" = "www" ]]; then
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'cat /tmp/setenv.sh ; . /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN ".$OLD_URL_DOMAIN" ".$MAIN_DOMAIN" --all-tables'
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'cat /tmp/setenv.sh ; . /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN "$OLD_URL_DOMAIN" "$URL_DOMAIN" --all-tables'
|
||||
|
||||
elif [[ "$OLD_SUBDOMAIN" != "www" ]] && [[ "$SUBDOMAIN" != "www" ]]; then
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c 'cat /tmp/setenv.sh ; . /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN "$OLD_URL_DOMAIN" "$URL_DOMAIN" --all-tables'
|
||||
|
||||
else
|
||||
echo "======== fix the issues ============="
|
||||
fi
|
||||
|
||||
# ----------------------------------------------------------------------------------------------------------------------------------------
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; wp search-replace --allow-root --path=/usr/share/nginx/subdomain/$SUBDOMAIN "http://$URL_DOMAIN" "$NEW_URL" --all-tables'
|
||||
|
||||
|
||||
|
||||
kubectl delete po common-job-pod -n $NAMESPACE
|
||||
|
||||
cat script.log | egrep -v -i "warning|SQL|create mode|rewrite" | egrep -i "fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
cat script.log | egrep -v "SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
;;
|
||||
|
||||
wp-data-restore)
|
||||
aws eks update-kubeconfig --name caresage-eks-cluster-$ENV --region us-east-1
|
||||
kubectl apply -f build/$ENV/pod.tpl && sleep 60 || exit 9
|
||||
kubectl apply -f build/$ENV/pod.tpl && kubectl apply -f build/$ENV/pvc.yml && sleep 15
|
||||
kubectl get po common-job-pod -n $NAMESPACE | grep -i pending && exit 9 || echo ----common-pod-NOT-in-pending-state --
|
||||
|
||||
kubectl cp setenv.sh $NAMESPACE/common-job-pod:/tmp/setenv.sh
|
||||
@@ -198,7 +248,7 @@ kubectl cp $FILE $NAMESPACE/common-job-pod:/tmp/$FILE
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh; mkdir -p /usr/share/nginx/subdomain/$SUBDOMAIN/wp-content/uploads'
|
||||
kubectl exec common-job-pod -n $NAMESPACE -- sh -c '. /tmp/setenv.sh;export FILE=`ls /tmp/*.zip`;unzip -o $FILE -d /usr/share/nginx/subdomain/$SUBDOMAIN/wp-content/uploads'
|
||||
kubectl delete po common-job-pod -n $NAMESPACE
|
||||
cat script.log | egrep -v -i "warning|SQL|create mode|rewrite" | egrep -i "fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
cat script.log | egrep -v "SQL|rewrite|Rewrite|warning|Warning|create mode" | egrep -i "not in gzip format|fail|fatal|exception|terminated|command not found|error|unexpected|cannot access|No such file" && exit 9 || echo VALIDATION_PASS_$opt
|
||||
|
||||
;;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user