Skip to content

Commit 0be26b2

Browse files
author
N P
committed
fix(healthcheck): Variablizes healthcheck
1 parent 0356439 commit 0be26b2

File tree

3 files changed

+79
-71
lines changed

3 files changed

+79
-71
lines changed

ecs.tf

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -106,24 +106,25 @@ resource "aws_cloudwatch_log_group" "wordpress_container" {
106106
resource "aws_ecs_task_definition" "wordpress_container" {
107107
family = "${var.site_name}_wordpress"
108108
container_definitions = templatefile("${path.module}/task-definitions/wordpress.json", {
109-
db_host = aws_rds_cluster.serverless_wordpress.endpoint,
110-
db_user = aws_rds_cluster.serverless_wordpress.master_username,
111-
db_password = random_password.serverless_wordpress_password.result,
112-
db_name = aws_rds_cluster.serverless_wordpress.database_name,
113-
wordpress_image = "${aws_ecr_repository.serverless_wordpress.repository_url}:latest",
114-
wp_dest = "https://${var.site_prefix}.${var.site_domain}",
115-
wp_region = var.s3_region,
116-
wp_bucket = module.cloudfront.wordpress_bucket_id,
117-
container_dns = "${var.wordpress_subdomain}.${var.site_domain}",
118-
container_dns_zone = var.hosted_zone_id,
119-
container_cpu = var.ecs_cpu,
120-
container_memory = var.ecs_memory
121-
efs_source_volume = "${var.site_name}_wordpress_persistent"
122-
wordpress_admin_user = var.wordpress_admin_user
123-
wordpress_admin_password = var.wordpress_admin_password
124-
wordpress_admin_email = var.wordpress_admin_email
125-
site_name = var.site_name
126-
wordpress_memory_limit = var.wordpress_memory_limit
109+
db_host = aws_rds_cluster.serverless_wordpress.endpoint
110+
db_user = aws_rds_cluster.serverless_wordpress.master_username
111+
db_password = random_password.serverless_wordpress_password.result
112+
db_name = aws_rds_cluster.serverless_wordpress.database_name
113+
wordpress_image = "${aws_ecr_repository.serverless_wordpress.repository_url}:latest"
114+
wp_dest = "https://${var.site_prefix}.${var.site_domain}"
115+
wp_region = var.s3_region
116+
wp_bucket = module.cloudfront.wordpress_bucket_id
117+
container_dns = "${var.wordpress_subdomain}.${var.site_domain}"
118+
container_dns_zone = var.hosted_zone_id
119+
container_cpu = var.ecs_cpu
120+
container_memory = var.ecs_memory
121+
container_healthcheck_enabled = var.ecs_healthcheck_enabled
122+
efs_source_volume = "${var.site_name}_wordpress_persistent"
123+
wordpress_admin_user = var.wordpress_admin_user
124+
wordpress_admin_password = var.wordpress_admin_password
125+
wordpress_admin_email = var.wordpress_admin_email
126+
site_name = var.site_name
127+
wordpress_memory_limit = var.wordpress_memory_limit
127128
})
128129

129130
runtime_platform {

task-definitions/wordpress.json

Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,57 @@
11
[
2-
${jsonencode({
3-
"cpu": tonumber(container_cpu),
4-
"environment": [
5-
{"name": "ECS_ENABLE_CONTAINER_METADATA", "value": "true"},
6-
{"name": "WORDPRESS_DB_HOST", "value": "${db_host}"},
7-
{"name": "WORDPRESS_DB_USER", "value": "${db_user}"},
8-
{"name": "WORDPRESS_DB_PASSWORD", "value": "${db_password}"},
9-
{"name": "WORDPRESS_DB_NAME", "value": "${db_name}"},
10-
{"name": "WPSTATIC_DEST", "value": "${wp_dest}"},
11-
{"name": "WPSTATIC_REGION", "value": "${wp_region}"},
12-
{"name": "WPSTATIC_BUCKET", "value": "${wp_bucket}"},
13-
{"name": "CONTAINER_DNS", "value": "${container_dns}"},
14-
{"name": "CONTAINER_DNS_ZONE", "value": "${container_dns_zone}"},
15-
{"name": "WORDPRESS_ADMIN_USER", "value": "${wordpress_admin_user}"},
16-
{"name": "WORDPRESS_ADMIN_PASSWORD", "value": "${wordpress_admin_password}"},
17-
{"name": "WORDPRESS_ADMIN_EMAIL", "value": "${wordpress_admin_email}"},
18-
{"name": "WP_MEMORY_LIMIT", "value": "${wordpress_memory_limit}"}
19-
],
20-
"essential": true,
21-
"image": "${wordpress_image}",
22-
"memory": tonumber(container_memory),
23-
"name": "wordpress",
24-
"portMappings": [
25-
{
26-
"containerPort": 80,
27-
"hostPort": 80,
28-
"protocol": "tcp"
2+
{
3+
"cpu": ${tonumber(container_cpu)},
4+
"environment": [
5+
{"name": "ECS_ENABLE_CONTAINER_METADATA", "value": "true"},
6+
{"name": "WORDPRESS_DB_HOST", "value": "${db_host}"},
7+
{"name": "WORDPRESS_DB_USER", "value": "${db_user}"},
8+
{"name": "WORDPRESS_DB_PASSWORD", "value": "${db_password}"},
9+
{"name": "WORDPRESS_DB_NAME", "value": "${db_name}"},
10+
{"name": "WPSTATIC_DEST", "value": "${wp_dest}"},
11+
{"name": "WPSTATIC_REGION", "value": "${wp_region}"},
12+
{"name": "WPSTATIC_BUCKET", "value": "${wp_bucket}"},
13+
{"name": "CONTAINER_DNS", "value": "${container_dns}"},
14+
{"name": "CONTAINER_DNS_ZONE", "value": "${container_dns_zone}"},
15+
{"name": "WORDPRESS_ADMIN_USER", "value": "${wordpress_admin_user}"},
16+
{"name": "WORDPRESS_ADMIN_PASSWORD", "value": "${wordpress_admin_password}"},
17+
{"name": "WORDPRESS_ADMIN_EMAIL", "value": "${wordpress_admin_email}"},
18+
{"name": "WP_MEMORY_LIMIT", "value": "${wordpress_memory_limit}"}
19+
],
20+
"essential": true,
21+
"image": "${wordpress_image}",
22+
"memory": ${tonumber(container_memory)},
23+
"name": "wordpress",
24+
"portMappings": [
25+
{
26+
"containerPort": 80,
27+
"hostPort": 80,
28+
"protocol": "tcp"
29+
}
30+
],
31+
"mountPoints" : [
32+
{
33+
"sourceVolume": "${efs_source_volume}",
34+
"containerPath": "/var/www/html",
35+
"readOnly": false
36+
}
37+
],
38+
%{if container_healthcheck_enabled }
39+
"healthCheck": {
40+
"retries": 10,
41+
"command": [ "CMD-SHELL", "curl -f http://localhost:80/ || exit 1" ],
42+
"timeout": 5,
43+
"interval": 10,
44+
"startPeriod": 60
45+
},
46+
%{ endif }
47+
"volumesFrom" : [],
48+
"logConfiguration": {
49+
"logDriver": "awslogs",
50+
"options": {
51+
"awslogs-group": "/aws/ecs/${site_name}-serverless-wordpress-container",
52+
"awslogs-region": "${wp_region}",
53+
"awslogs-stream-prefix": "ecs"
54+
}
2955
}
30-
],
31-
"mountPoints" : [
32-
{
33-
"sourceVolume": "${efs_source_volume}",
34-
"containerPath": "/var/www/html",
35-
"readOnly": false
36-
}
37-
],
38-
"healthCheck": {
39-
"retries": 10,
40-
"command": [ "CMD-SHELL", "curl -f http://localhost:80/ || exit 1" ],
41-
"timeout": 5,
42-
"interval": 10,
43-
"startPeriod": 60
44-
},
45-
"volumesFrom" : [],
46-
"logConfiguration": {
47-
"logDriver": "awslogs",
48-
"options": {
49-
"awslogs-group": "/aws/ecs/${site_name}-serverless-wordpress-container",
50-
"awslogs-region": "${wp_region}",
51-
"awslogs-stream-prefix": "ecs"
52-
}
53-
}
54-
})}
55-
56+
}
5657
]

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@ variable "ecs_memory" {
7979
description = "The memory limit password to the Wordpress container definition."
8080
}
8181

82+
variable "ecs_healthcheck_enabled" {
83+
default = true
84+
description = "Runs an healtchcheck against the container."
85+
type = bool
86+
}
87+
8288
variable "snapshot_identifier" {
8389
description = "To create the RDS cluster from a previous snapshot in the same region, specify it by name."
8490
type = string

0 commit comments

Comments
 (0)