@@ -1056,48 +1056,109 @@ function releaseCommits() {
10561056 echo " https://github.com/ConsultingMD/jarvis/compare/${lastReleaseBranchWithoutRemote} ...${currentReleaseBranchWithoutRemote} "
10571057}
10581058
1059- function pvault() {
1060- production && \
1061- echo ' 🌐 Opening SSH tunnel named "my-vault-tunnel" in background...' && \
1062- HOST=$( ec2-find -l stone-worker 2> /dev/null | tail -1 | awk ' {print $1}' ) && \
1063- ssh -M -S my-vault-tunnel -fnNT -L " 1234:vault.grandrounds.com:443" " $GR_USERNAME @$HOST " && \
1064- ssh -S my-vault-tunnel -O check " $GR_USERNAME @$HOST " && \
1065- sleep 5 && \
1066- echo ' 🔐 Use this token to log in:' && \
1067- (aws-environment infra-production developer && \
1068- VAULT_ADDR=https://localhost:1234 vault login -tls-skip-verify -token-only -method=aws role=developer) && \
1069- open ' https://localhost:1234/ui/vault/auth?with=token' && \
1070- echo ' ✅ Run kvault this command to close the tunnel'
1071- }
1059+ # function pvault() {
1060+ # production && \
1061+ # echo '🌐 Opening SSH tunnel named "my-vault-tunnel" in background...' && \
1062+ # HOST=$(ec2-find -l stone-worker 2> /dev/null | tail -1 | awk '{print $1}') && \
1063+ # ssh -M -S my-vault-tunnel -fnNT -L "1234:vault.grandrounds.com:443" "$GR_USERNAME@$HOST" && \
1064+ # ssh -S my-vault-tunnel -O check "$GR_USERNAME@$HOST" && \
1065+ # sleep 5 && \
1066+ # echo '🔐 Use this token to log in:' && \
1067+ # (aws-environment infra-production developer && \
1068+ # VAULT_ADDR=https://localhost:1234 vault login -tls-skip-verify -token-only -method=aws role=developer) && \
1069+ # open 'https://localhost:1234/ui/vault/auth?with=token' && \
1070+ # echo '✅ Run kvault this command to close the tunnel'
1071+ # }
1072+
1073+ function vault-tunnel() {
1074+ if [[ -z " $1 " ]]; then
1075+ echo ' Usage: vault_tunnel ENVIRONMENT_NAME'
1076+ return 1
1077+ fi
1078+
1079+ # Check for an existing tunnel (this may be mac specific?)
1080+ local already_bound
1081+ already_bound=$( lsof -n -i4TCP:1234 | grep LISTEN)
1082+ if [[ -n " $already_bound " ]]; then
1083+ local pid
1084+ pid=$( echo " $already_bound " | awk ' {print $2}' )
1085+ echo ' ❌ There is already something bound to port 1234! Here it is:'
1086+ echo " $already_bound "
1087+ echo ' 💀 You can try running kvault, or manually kill the process by running:'
1088+ echo " kill ${pid} "
1089+ return 1
1090+ fi
1091+
1092+ # Create the bind port and host, note production has snowflake hostname
1093+ local tunnel_bind=" 1234:vault.${1} .grandrounds.com:443"
1094+ if [[ " $1 " == " production" ]]; then
1095+ tunnel_bind=" 1234:vault.grandrounds.com:443"
1096+ fi
1097+ local tunnel_host=" $GR_USERNAME @$HOST "
10721098
1073- function i3vault() {
1074- aws-environment integration3 && \
1075- echo ' 🌐 Opening SSH tunnel named "my-vault-tunnel" in background...' && \
1099+ echo ' 🌐 Opening SSH tunnel named "my-vault-tunnel" in background...'
1100+
1101+ # Chain all functions with && \ so that if one errors the rest don't execute
1102+ aws-environment " $1 " && \
10761103 HOST=$( ec2-find -l stone-worker 2> /dev/null | tail -1 | awk ' {print $1}' ) && \
1077- ssh -M -S my-vault-tunnel -fnNT -L " 1234:vault.$( aws-environment) .grandrounds.com:443" " $GR_USERNAME @$HOST " && \
1078- ssh -S my-vault-tunnel -O check " $GR_USERNAME @$HOST " && \
1104+ ssh -M -S my-vault-tunnel -fnNT -L " $tunnel_bind " " $tunnel_host " && \
1105+ ssh -S my-vault-tunnel -O check " $tunnel_host " && \
1106+ # Trying to run vault commands too quickly after tunnel starts fail
10791107 sleep 5 && \
1080- echo ' 🔐 Use this token to log in:' && \
1081- (aws-environment platform-dev developer && \
1082- VAULT_ADDR=https://localhost:1234 vault login -tls-skip-verify -token-only -method=aws role=developer) && \
1083- open ' https://localhost:1234/ui/vault/auth?with=token' && \
1084- echo ' ✅ Run kvault this command to close the tunnel'
1108+ echo ' ✅ Tunnel running. Run kill_vault_tunnel close the tunnel'
10851109}
10861110
1087- function uvault() {
1088- uat && \
1089- echo ' 🌐 Opening SSH tunnel named "my-vault-tunnel" in background...' && \
1090- HOST=$( ec2-find -l stone-worker 2> /dev/null | tail -1 | awk ' {print $1}' ) && \
1091- ssh -M -S my-vault-tunnel -fnNT -L " 1234:vault.$( aws-environment) .grandrounds.com:443" " $GR_USERNAME @$HOST " && \
1092- ssh -S my-vault-tunnel -O check " $GR_USERNAME @$HOST " && \
1093- sleep 5 && \
1094- echo ' 🔐 Use this token to log in:' && \
1095- (aws-environment infra-uat developer && \
1111+ function vault-login() {
1112+ if [[ -z " $1 " ]]; then
1113+ echo ' Usage: vault_login ENVIRONMENT_NAME'
1114+ return 1
1115+ fi
1116+
1117+ local account
1118+ case $1 in
1119+ integration3) account=' platform-dev' ;;
1120+ uat) account=' infra-uat' ;;
1121+ production) account=' infra-production' ;;
1122+ * ) echo " I don't know how to log in to Vault for environment '$1 '" ;;
1123+ esac
1124+
1125+ vault_tunnel " $1 " && \
1126+ echo -e ' 🔐 Use this token to log in:\n' && \
1127+ (aws-environment ${account} developer && \
10961128 VAULT_ADDR=https://localhost:1234 vault login -tls-skip-verify -token-only -method=aws role=developer) && \
1097- open ' https://localhost:1234/ui/vault/auth?with=token' && \
1098- echo ' ✅ Run kvault this command to close the tunnel'
1129+ echo -e ' \n💻 Opening a browser to https://localhost:1234/ui/vault/auth?with=token ...' && \
1130+ echo ' You may need to sign out and re-authenticate with your new token' && \
1131+ open ' https://localhost:1234/ui/vault/auth?with=token'
10991132}
11001133
1134+ # function i3vault() {
1135+ # aws-environment integration3 && \
1136+ # echo '🌐 Opening SSH tunnel named "my-vault-tunnel" in background...' && \
1137+ # HOST=$(ec2-find -l stone-worker 2> /dev/null | tail -1 | awk '{print $1}') && \
1138+ # ssh -M -S my-vault-tunnel -fnNT -L "1234:vault.$(aws-environment).grandrounds.com:443" "$GR_USERNAME@$HOST" && \
1139+ # ssh -S my-vault-tunnel -O check "$GR_USERNAME@$HOST" && \
1140+ # sleep 5 && \
1141+ # echo '🔐 Use this token to log in:' && \
1142+ # (aws-environment platform-dev developer && \
1143+ # VAULT_ADDR=https://localhost:1234 vault login -tls-skip-verify -token-only -method=aws role=developer) && \
1144+ # open 'https://localhost:1234/ui/vault/auth?with=token' && \
1145+ # echo '✅ Run kvault this command to close the tunnel'
1146+ # }
1147+
1148+ # function uvault() {
1149+ # uat && \
1150+ # echo '🌐 Opening SSH tunnel named "my-vault-tunnel" in background...' && \
1151+ # HOST=$(ec2-find -l stone-worker 2> /dev/null | tail -1 | awk '{print $1}') && \
1152+ # ssh -M -S my-vault-tunnel -fnNT -L "1234:vault.$(aws-environment).grandrounds.com:443" "$GR_USERNAME@$HOST" && \
1153+ # ssh -S my-vault-tunnel -O check "$GR_USERNAME@$HOST" && \
1154+ # sleep 5 && \
1155+ # echo '🔐 Use this token to log in:' && \
1156+ # (aws-environment infra-uat developer && \
1157+ # VAULT_ADDR=https://localhost:1234 vault login -tls-skip-verify -token-only -method=aws role=developer) && \
1158+ # open 'https://localhost:1234/ui/vault/auth?with=token' && \
1159+ # echo '✅ Run kvault this command to close the tunnel'
1160+ # }
1161+
11011162function kvault() {
11021163 echo " 💀 Killing my-vault-tunnel tunnel at $GR_USERNAME @$HOST "
11031164 ssh -S my-vault-tunnel -O exit " $GR_USERNAME @$HOST "
@@ -1205,6 +1266,11 @@ function docker_tag_exists() {
12051266 fi
12061267}
12071268
1269+ LEGACY_TERRAFORM_PATH=
" /usr/local/opt/[email protected] /bin" 1270+ if [ -d " $LEGACY_TERRAFORM_PATH " ]; then
1271+ pathadd " $LEGACY_TERRAFORM_PATH "
1272+ fi
1273+
12081274TRACKER_FLOW_PATH=" $GR_HOME /tracker-flow"
12091275if [ -d " $TRACKER_FLOW_PATH " ]; then
12101276 pathadd " $TRACKER_FLOW_PATH "
0 commit comments