Skip to content

Instantly share code, notes, and snippets.

@vi2co
Last active June 13, 2017 16:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vi2co/9e21cf5e55372df87c3e6a945e851cdb to your computer and use it in GitHub Desktop.
Save vi2co/9e21cf5e55372df87c3e6a945e851cdb to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
if [ $# -eq 0 ]; then
echo "Usage: $0 <namespace>"
echo "For example: $0 dev"
exit 1
else
NAMESPACE=$1
fi
S3_JAR_BUCKET=svc.mg.mg-nautical.${NAMESPACE}-deployment.s3.mg
STACK_NAME=net-mg-meteogroup-mg-nautical-${NAMESPACE}
cf='aws cloudformation'
cmd='create'
echo looking for stack
${cf} describe-stacks --stack-name ${STACK_NAME} &>/dev/null
if [ "$?" == "0" ]; then
echo stack exists... checking status
s=$(${cf} describe-stacks --stack-name ${STACK_NAME} --output text \
--query 'Stacks[0].StackStatus')
echo stack status ${s}
if [ "$s" == "ROLLBACK_COMPLETE" ] || [ "$s" == "ROLLBACK_FAILED" ] || \
[ "$s" == "DELETE_FAILED" ] || [ "$s" == "UPDATE_ROLLBACK_FAILED" ] ; then
echo deleting stack
${cf} delete-stack --stack-name ${STACK_NAME}
${cf} wait stack-delete-complete --stack-name ${STACK_NAME}
else
cmd='update'
fi
else
${cf} ${cmd}-stack --stack-name ${STACK_NAME} --capabilities CAPABILITY_NAMED_IAM \
--parameters ParameterKey=S3JarBucket,ParameterValue=${S3_JAR_BUCKET} \
ParameterKey=Namespace,ParameterValue=${NAMESPACE} \
--template-body file://stack.json
fi
echo ${cmd} stack initiated for ${STACK_NAME}
${cf} ${cmd}-stack --stack-name ${STACK_NAME} --capabilities CAPABILITY_NAMED_IAM \
--parameters ParameterKey=S3JarBucket,ParameterValue=${S3_JAR_BUCKET} \
ParameterKey=Namespace,ParameterValue=${NAMESPACE} \
--template-body file://stack.json > /dev/null
if [ "$?" == "0" ]; then
${cf} wait stack-${cmd}-complete --stack-name ${STACK_NAME}
fi
API=$(${cf} describe-stacks --stack-name ${STACK_NAME} --output text \
--query 'Stacks[0].Outputs[?OutputKey==`ApiId`].[OutputValue]')
API_URL="https://${API}.execute-api.$(aws configure get region).amazonaws.com/v1"
echo ${API_URL}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment