@@ -11,6 +11,7 @@ AWS_ECS_CONTAINER_NAME="tc-project-service"
11
11
AWS_REPOSITORY=$( eval " echo \$ ${ENV} _AWS_REPOSITORY" )
12
12
AWS_ECS_CLUSTER=$( eval " echo \$ ${ENV} _AWS_ECS_CLUSTER" )
13
13
AWS_ECS_SERVICE=$( eval " echo \$ ${ENV} _AWS_ECS_SERVICE" )
14
+ AWS_ECS_SERVICE_CONSUMERS=$( eval " echo \$ ${ENV} _AWS_ECS_SERVICE_CONSUMERS" )
14
15
AUTH_DOMAIN=$( eval " echo \$ ${ENV} _AUTH_DOMAIN" )
15
16
AUTH_SECRET=$( eval " echo \$ ${ENV} _AUTH_SECRET" )
16
17
VALID_ISSUERS=$( eval " echo \$ ${ENV} _VALID_ISSUERS" )
@@ -29,9 +30,9 @@ configure_aws_cli() {
29
30
# deploys the app to the ecs cluster
30
31
deploy_cluster () {
31
32
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 | \
35
36
$JQ ' .service.taskDefinition' ) != $revision ]]; then
36
37
echo " Error updating service."
37
38
return 1
@@ -46,6 +47,7 @@ make_task_def(){
46
47
"family": "%s",
47
48
"requiresCompatibilities": ["EC2", "FARGATE"],
48
49
"networkMode": "awsvpc",
50
+ "taskRoleArn": "arn:aws:iam::%s:role/tc-project-service-ecs-task-role",
49
51
"executionRoleArn": "arn:aws:iam::%s:role/ecsTaskExecutionRole",
50
52
"cpu": "1024",
51
53
"memory": "2048",
@@ -56,6 +58,7 @@ make_task_def(){
56
58
"essential": true,
57
59
"memory": 1536,
58
60
"cpu": 768,
61
+ "entryPoint": ["%s", "%s", "%s"],
59
62
"environment": [
60
63
{
61
64
"name": "NODE_ENV",
@@ -85,14 +88,6 @@ make_task_def(){
85
88
"name": "AWS_REGION",
86
89
"value": "%s"
87
90
},
88
- {
89
- "name": "AWS_ACCESS_KEY_ID",
90
- "value": "%s"
91
- },
92
- {
93
- "name": "AWS_SECRET_ACCESS_KEY",
94
- "value": "%s"
95
- },
96
91
{
97
92
"name": "AUTH_DOMAIN",
98
93
"value": "%s"
@@ -253,12 +248,12 @@ make_task_def(){
253
248
KAFKA_URL=$( eval " echo \$ ${ENV} _KAFKA_URL" )
254
249
255
250
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 )
257
252
}
258
253
259
254
push_ecr_image (){
260
255
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
262
257
}
263
258
264
259
register_definition () {
@@ -273,13 +268,13 @@ register_definition() {
273
268
check_service_status () {
274
269
counter=0
275
270
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' `
277
272
while [[ $servicestatus != * " steady state" * ]]
278
273
do
279
274
echo " Current event message : $servicestatus "
280
275
echo " Waiting for 30 seconds to check the service status...."
281
276
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' `
283
278
counter=` expr $counter + 1`
284
279
if [[ $counter -gt $COUNTER_LIMIT ]] ; then
285
280
echo " Service does not reach steady state within 10 minutes. Please check"
@@ -290,6 +285,10 @@ check_service_status() {
290
285
}
291
286
292
287
configure_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