@@ -11,6 +11,7 @@ AWS_ECS_CONTAINER_NAME="tc-project-service"
1111AWS_REPOSITORY=$( eval " echo \$ ${ENV} _AWS_REPOSITORY" )
1212AWS_ECS_CLUSTER=$( eval " echo \$ ${ENV} _AWS_ECS_CLUSTER" )
1313AWS_ECS_SERVICE=$( eval " echo \$ ${ENV} _AWS_ECS_SERVICE" )
14+ AWS_ECS_SERVICE_CONSUMERS=$( eval " echo \$ ${ENV} _AWS_ECS_SERVICE_CONSUMERS" )
1415AUTH_DOMAIN=$( eval " echo \$ ${ENV} _AUTH_DOMAIN" )
1516AUTH_SECRET=$( eval " echo \$ ${ENV} _AUTH_SECRET" )
1617VALID_ISSUERS=$( eval " echo \$ ${ENV} _VALID_ISSUERS" )
@@ -29,9 +30,9 @@ configure_aws_cli() {
2930# deploys the app to the ecs cluster
3031deploy_cluster () {
3132
32- make_task_def
33- register_definition
34- if [[ $( aws ecs update-service --cluster $AWS_ECS_CLUSTER --service $AWS_ECS_SERVICE --task-definition $revision | \
33+ make_task_def $1 $2 $3 $4
34+ register_definition $1
35+ if [[ $( aws ecs update-service --cluster $AWS_ECS_CLUSTER --service $1 --task-definition $revision | \
3536 $JQ ' .service.taskDefinition' ) != $revision ]]; then
3637 echo " Error updating service."
3738 return 1
@@ -46,6 +47,7 @@ make_task_def(){
4647 "family": "%s",
4748 "requiresCompatibilities": ["EC2", "FARGATE"],
4849 "networkMode": "awsvpc",
50+ "taskRoleArn": "arn:aws:iam::%s:role/tc-project-service-ecs-task-role",
4951 "executionRoleArn": "arn:aws:iam::%s:role/ecsTaskExecutionRole",
5052 "cpu": "1024",
5153 "memory": "2048",
@@ -56,6 +58,7 @@ make_task_def(){
5658 "essential": true,
5759 "memory": 1536,
5860 "cpu": 768,
61+ "entryPoint": ["%s", "%s", "%s"],
5962 "environment": [
6063 {
6164 "name": "NODE_ENV",
@@ -85,14 +88,6 @@ make_task_def(){
8588 "name": "AWS_REGION",
8689 "value": "%s"
8790 },
88- {
89- "name": "AWS_ACCESS_KEY_ID",
90- "value": "%s"
91- },
92- {
93- "name": "AWS_SECRET_ACCESS_KEY",
94- "value": "%s"
95- },
9691 {
9792 "name": "AUTH_DOMAIN",
9893 "value": "%s"
@@ -253,12 +248,12 @@ make_task_def(){
253248 KAFKA_URL=$( eval " echo \$ ${ENV} _KAFKA_URL" )
254249
255250
256- task_def=$( printf " $task_template " $family $ACCOUNT_ID $AWS_ECS_CONTAINER_NAME $ACCOUNT_ID $AWS_REGION $AWS_REPOSITORY $CIRCLE_SHA1 $NODE_ENV $ENABLE_FILE_UPLOAD $LOG_LEVEL $CAPTURE_LOGS $LOGENTRIES_TOKEN $API_VERSION $AWS_REGION $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY $AUTH_DOMAIN $AUTH_SECRET $VALID_ISSUERS $DB_MASTER_URL $MEMBER_SERVICE_ENDPOINT $IDENTITY_SERVICE_ENDPOINT $BUS_API_URL $MESSAGE_SERVICE_URL $SYSTEM_USER_CLIENT_ID $SYSTEM_USER_CLIENT_SECRET $PROJECTS_ES_URL $PROJECTS_ES_INDEX_NAME $RABBITMQ_URL $DIRECT_PROJECT_SERVICE_ENDPOINT $FILE_SERVICE_ENDPOINT $CONNECT_PROJECTS_URL $SEGMENT_ANALYTICS_KEY " $AUTH0_URL " " $AUTH0_AUDIENCE " $AUTH0_CLIENT_ID " $AUTH0_CLIENT_SECRET " $TOKEN_CACHE_TIME " $KAFKA_CLIENT_CERT " " $KAFKA_CLIENT_CERT_KEY " $KAFKA_GROUP_ID $KAFKA_URL $PORT $PORT $AWS_ECS_CLUSTER $AWS_REGION $NODE_ENV )
251+ task_def=$( printf " $task_template " $1 $ACCOUNT_ID $ACCOUNT_ID $ AWS_ECS_CONTAINER_NAME $ACCOUNT_ID $AWS_REGION $AWS_REPOSITORY $CIRCLE_SHA1 $2 $3 $4 $ NODE_ENV $ENABLE_FILE_UPLOAD $LOG_LEVEL $CAPTURE_LOGS $LOGENTRIES_TOKEN $API_VERSION $AWS_REGION $AUTH_DOMAIN $AUTH_SECRET $VALID_ISSUERS $DB_MASTER_URL $MEMBER_SERVICE_ENDPOINT $IDENTITY_SERVICE_ENDPOINT $BUS_API_URL $MESSAGE_SERVICE_URL $SYSTEM_USER_CLIENT_ID $SYSTEM_USER_CLIENT_SECRET $PROJECTS_ES_URL $PROJECTS_ES_INDEX_NAME $RABBITMQ_URL $DIRECT_PROJECT_SERVICE_ENDPOINT $FILE_SERVICE_ENDPOINT $CONNECT_PROJECTS_URL $SEGMENT_ANALYTICS_KEY " $AUTH0_URL " " $AUTH0_AUDIENCE " $AUTH0_CLIENT_ID " $AUTH0_CLIENT_SECRET " $TOKEN_CACHE_TIME " $KAFKA_CLIENT_CERT " " $KAFKA_CLIENT_CERT_KEY " $KAFKA_GROUP_ID $KAFKA_URL $PORT $PORT $AWS_ECS_CLUSTER $AWS_REGION $NODE_ENV )
257252}
258253
259254push_ecr_image (){
260255 eval $( aws ecr get-login --region $AWS_REGION --no-include-email)
261- docker push $ACCOUNT_ID .dkr.ecr.$AWS_REGION .amazonaws.com/$AWS_REPOSITORY :$CIRCLE_SHA1
256+ docker push $ACCOUNT_ID .dkr.ecr.$AWS_REGION .amazonaws.com/$1 :$CIRCLE_SHA1
262257}
263258
264259register_definition () {
@@ -273,13 +268,13 @@ register_definition() {
273268check_service_status () {
274269 counter=0
275270 sleep 60
276- servicestatus=` aws ecs describe-services --service $AWS_ECS_SERVICE --cluster $AWS_ECS_CLUSTER | $JQ ' .services[].events[0].message' `
271+ servicestatus=` aws ecs describe-services --service $1 --cluster $AWS_ECS_CLUSTER | $JQ ' .services[].events[0].message' `
277272 while [[ $servicestatus != * " steady state" * ]]
278273 do
279274 echo " Current event message : $servicestatus "
280275 echo " Waiting for 30 seconds to check the service status...."
281276 sleep 30
282- servicestatus=` aws ecs describe-services --service $AWS_ECS_SERVICE --cluster $AWS_ECS_CLUSTER | $JQ ' .services[].events[0].message' `
277+ servicestatus=` aws ecs describe-services --service $1 --cluster $AWS_ECS_CLUSTER | $JQ ' .services[].events[0].message' `
283278 counter=` expr $counter + 1`
284279 if [[ $counter -gt $COUNTER_LIMIT ]] ; then
285280 echo " Service does not reach steady state within 10 minutes. Please check"
@@ -290,6 +285,10 @@ check_service_status() {
290285}
291286
292287configure_aws_cli
293- push_ecr_image
294- deploy_cluster
295- check_service_status
288+ push_ecr_image $AWS_REPOSITORY
289+ deploy_cluster $AWS_ECS_SERVICE " npm" " run" " start"
290+
291+ deploy_cluster $AWS_ECS_SERVICE_CONSUMERS " npm" " run" " startKafkaConsumers"
292+
293+ check_service_status $AWS_ECS_SERVICE
294+ check_service_status $AWS_ECS_SERVICE_CONSUMERS
0 commit comments