From 480cac4fdf087d15da4b4d2f1d9b314abcba4e8f Mon Sep 17 00:00:00 2001 From: Yarden Asado Date: Fri, 5 Apr 2024 17:59:43 -0400 Subject: [PATCH] clear debugs --- github.sh | 134 +++++++++++++++++++++++++----------------------------- 1 file changed, 62 insertions(+), 72 deletions(-) diff --git a/github.sh b/github.sh index 64542a5e7b887..412db99ed7d94 100755 --- a/github.sh +++ b/github.sh @@ -37,82 +37,72 @@ export RC_DIR_ENVSUBST=$rc_dir export S3_BUCKET_ENVSUBST=$s3_bucket export RC_TARBALL_ENVSUBST=$rc_tarball -echo "print ENVSUBST env:" -env | grep "ENVSUBST" - #append all "_ENVSUBST" env vars keys to a online commas separated. b=""; for i in $(printenv | grep "_ENVSUBST" | sed 's;=.*;;'); do echo "$i"; b="$b\$$i,"; done; b=${b::-1}; envsubst_varlist="$b" -echo "$envsubst_varlist" + ## Render Script Templates -#see doc in https://github.com/a8m/envsubst envsubst "$envsubst_varlist" < ./pre_install.sh.tpl > ./pre_install.sh envsubst "$envsubst_varlist" < ./rotate_version.sh.tpl > ./rotate_version.sh -echo "print script pre_install.sh:" -cat pre_install.sh -echo "print script rotate_version.sh:" -cat rotate_version.sh - - -### When deploying to production, run using the "rocketchat-deploy" role -#if [[ $environment == production ]] ; then -# assumed_role_json=$( -# aws \ -# --output json \ -# sts assume-role \ -# --role-arn arn:aws:iam::618678420696:role/switch-account-deploy-rocket-chat \ -# --role-session-name rocketchat-deploy -# ) -# assumed_role_variables=$( -# echo "${assumed_role_json}" | jq -r \ -# ' -# "export AWS_SESSION_TOKEN=" + .Credentials.SessionToken + "\n" + -# "export AWS_ACCESS_KEY_ID=" + .Credentials.AccessKeyId + "\n" + -# "export AWS_SECRET_ACCESS_KEY=" + .Credentials.SecretAccessKey + "\n" -# ' -# ) -# eval "$assumed_role_variables" -#fi -# -### Get instance IPs one per line (multiline string) -#rc_instance_ips=$( -# aws ec2 describe-instances \ -# --filters Name=instance-state-name,Values=running \ -# Name=tag:aws:autoscaling:groupName,Values=rocketchat \ -# --query "Reservations[*].Instances[*].NetworkInterfaces[0].PrivateIpAddress" \ -# --output text -#) -# -# -### Install RC tarball (and its dependencies) onto all RC nodes -#hr -#echo "Installing new build onto all RC nodes:" -#parallel-ssh \ -# -x "-o StrictHostKeyChecking=no" \ -# --inline --timeout 600 --user deploy \ -# --hosts <(echo "$rc_instance_ips") \ -# --send-input < ./pre_install.sh -#hr -# -### Activate new version -#echo "Activating new build on all RC nodes:" -#parallel-ssh \ -# -x "-o StrictHostKeyChecking=no" \ -# --inline --timeout 600 --user deploy \ -# --hosts <(echo "$rc_instance_ips") \ -# --send-input < ./rotate_version.sh -#hr -# -### Update the version marker file -#echo "Mark which RC build is now active..." -#current_marker_file="rocket.chat-$environment.tgz" -#aws sts get-caller-identity -#aws s3 cp "s3://$s3_bucket/$rc_tarball" "s3://$s3_bucket/$current_marker_file" --acl public-read -#hr -# -### Flush CDN -#echo "Flushing $environment CDN" -#FASTLY_SERVICE=$(aws ssm get-parameter --name /rocketchat/fastly_service_id --with-decryption --query Parameter.Value --output text) -#FASTLY_TOKEN=$(aws ssm get-parameter --name /rocketchat/fastly_api_key --with-decryption --query Parameter.Value --output text) -#curl -X POST -H "Fastly-Key: $FASTLY_TOKEN" "https://api.fastly.com/service/$FASTLY_SERVICE/purge/$environment" +## When deploying to production, run using the "rocketchat-deploy" role +if [[ $environment == production ]] ; then + assumed_role_json=$( + aws \ + --output json \ + sts assume-role \ + --role-arn arn:aws:iam::618678420696:role/switch-account-deploy-rocket-chat \ + --role-session-name rocketchat-deploy + ) + assumed_role_variables=$( + echo "${assumed_role_json}" | jq -r \ + ' + "export AWS_SESSION_TOKEN=" + .Credentials.SessionToken + "\n" + + "export AWS_ACCESS_KEY_ID=" + .Credentials.AccessKeyId + "\n" + + "export AWS_SECRET_ACCESS_KEY=" + .Credentials.SecretAccessKey + "\n" + ' + ) + eval "$assumed_role_variables" +fi + +## Get instance IPs one per line (multiline string) +rc_instance_ips=$( + aws ec2 describe-instances \ + --filters Name=instance-state-name,Values=running \ + Name=tag:aws:autoscaling:groupName,Values=rocketchat \ + --query "Reservations[*].Instances[*].NetworkInterfaces[0].PrivateIpAddress" \ + --output text +) + + +## Install RC tarball (and its dependencies) onto all RC nodes +hr +echo "Installing new build onto all RC nodes:" +parallel-ssh \ + -x "-o StrictHostKeyChecking=no" \ + --inline --timeout 600 --user deploy \ + --hosts <(echo "$rc_instance_ips") \ + --send-input < ./pre_install.sh +hr + +## Activate new version +echo "Activating new build on all RC nodes:" +parallel-ssh \ + -x "-o StrictHostKeyChecking=no" \ + --inline --timeout 600 --user deploy \ + --hosts <(echo "$rc_instance_ips") \ + --send-input < ./rotate_version.sh +hr + +## Update the version marker file +echo "Mark which RC build is now active..." +current_marker_file="rocket.chat-$environment.tgz" +aws sts get-caller-identity +aws s3 cp "s3://$s3_bucket/$rc_tarball" "s3://$s3_bucket/$current_marker_file" --acl public-read +hr + +## Flush CDN +echo "Flushing $environment CDN" +FASTLY_SERVICE=$(aws ssm get-parameter --name /rocketchat/fastly_service_id --with-decryption --query Parameter.Value --output text) +FASTLY_TOKEN=$(aws ssm get-parameter --name /rocketchat/fastly_api_key --with-decryption --query Parameter.Value --output text) +curl -X POST -H "Fastly-Key: $FASTLY_TOKEN" "https://api.fastly.com/service/$FASTLY_SERVICE/purge/$environment"