@@ -17,12 +17,12 @@ resource "aws_cloudwatch_log_group" "this" {
17
17
}
18
18
19
19
resource "aws_db_subnet_group" "this" {
20
- name = " ${ var . deployment_name } -retool"
20
+ name = " ${ var . deployment_name } -retool"
21
21
subnet_ids = var. subnet_ids
22
22
}
23
23
24
24
resource "aws_db_instance" "this" {
25
- identifier = " ${ var . deployment_name } -rds-instance"
25
+ identifier = " ${ var . deployment_name } -rds-instance"
26
26
allocated_storage = 80
27
27
instance_class = var. rds_instance_class
28
28
engine = " postgres"
@@ -35,9 +35,13 @@ resource "aws_db_instance" "this" {
35
35
vpc_security_group_ids = [aws_security_group . rds . id ]
36
36
db_subnet_group_name = aws_db_subnet_group. this . id
37
37
performance_insights_enabled = var. rds_performance_insights_enabled
38
-
39
- skip_final_snapshot = true
40
- apply_immediately = true
38
+ kms_key_id = var. rds_kms_key_id
39
+ storage_encrypted = var. rds_kms_key_id != null
40
+ backup_window = var. rds_backup_window
41
+ backup_retention_period = var. rds_backup_retention_in_days
42
+
43
+ skip_final_snapshot = true
44
+ apply_immediately = true
41
45
}
42
46
43
47
resource "aws_ecs_service" "retool" {
@@ -65,7 +69,7 @@ resource "aws_ecs_service" "retool" {
65
69
dynamic "network_configuration" {
66
70
for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
67
71
68
- content {
72
+ content {
69
73
subnets = var. subnet_ids
70
74
security_groups = [
71
75
aws_security_group . containers . id
@@ -92,7 +96,7 @@ resource "aws_ecs_service" "jobs_runner" {
92
96
93
97
for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
94
98
95
- content {
99
+ content {
96
100
subnets = var. subnet_ids
97
101
security_groups = [
98
102
aws_security_group . containers . id
@@ -108,7 +112,7 @@ resource "aws_ecs_service" "workflows_backend" {
108
112
cluster = aws_ecs_cluster. this . id
109
113
desired_count = 1
110
114
task_definition = aws_ecs_task_definition. retool_workflows_backend [0 ]. arn
111
-
115
+
112
116
# Need to explictly set this in aws_ecs_service to avoid destructive behavior: https://github.com/hashicorp/terraform-provider-aws/issues/22823
113
117
capacity_provider_strategy {
114
118
base = 1
@@ -123,7 +127,7 @@ resource "aws_ecs_service" "workflows_backend" {
123
127
124
128
for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
125
129
126
- content {
130
+ content {
127
131
subnets = var. subnet_ids
128
132
security_groups = [
129
133
aws_security_group . containers . id
@@ -150,7 +154,7 @@ resource "aws_ecs_service" "workflows_worker" {
150
154
151
155
for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
152
156
153
- content {
157
+ content {
154
158
subnets = var. subnet_ids
155
159
security_groups = [
156
160
aws_security_group . containers . id
@@ -161,13 +165,13 @@ resource "aws_ecs_service" "workflows_worker" {
161
165
}
162
166
163
167
resource "aws_ecs_task_definition" "retool_jobs_runner" {
164
- family = " retool-jobs-runner"
165
- task_role_arn = aws_iam_role. task_role . arn
166
- execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
168
+ family = " retool-jobs-runner"
169
+ task_role_arn = aws_iam_role. task_role . arn
170
+ execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
167
171
requires_compatibilities = var. launch_type == " FARGATE" ? [" FARGATE" ] : null
168
- network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
169
- cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" jobs_runner" ][" cpu" ] : null
170
- memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" jobs_runner" ][" memory" ] : null
172
+ network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
173
+ cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" jobs_runner" ][" cpu" ] : null
174
+ memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" jobs_runner" ][" memory" ] : null
171
175
container_definitions = jsonencode (
172
176
[
173
177
{
@@ -211,13 +215,13 @@ resource "aws_ecs_task_definition" "retool_jobs_runner" {
211
215
)
212
216
}
213
217
resource "aws_ecs_task_definition" "retool" {
214
- family = " retool"
215
- task_role_arn = aws_iam_role. task_role . arn
216
- execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
218
+ family = " retool"
219
+ task_role_arn = aws_iam_role. task_role . arn
220
+ execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
217
221
requires_compatibilities = var. launch_type == " FARGATE" ? [" FARGATE" ] : null
218
- network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
219
- cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" main" ][" cpu" ] : null
220
- memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" main" ][" memory" ] : null
222
+ network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
223
+ cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" main" ][" cpu" ] : null
224
+ memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" main" ][" memory" ] : null
221
225
container_definitions = jsonencode (
222
226
[
223
227
{
@@ -266,14 +270,14 @@ resource "aws_ecs_task_definition" "retool" {
266
270
}
267
271
268
272
resource "aws_ecs_task_definition" "retool_workflows_backend" {
269
- count = var. workflows_enabled ? 1 : 0
270
- family = " retool-workflows-backend"
271
- task_role_arn = aws_iam_role. task_role . arn
272
- execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
273
- requires_compatibilities = var. launch_type == " FARGATE" ? [" FARGATE" ] : null
274
- network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
275
- cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_backend" ][" cpu" ] : null
276
- memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_backend" ][" memory" ] : null
273
+ count = var. workflows_enabled ? 1 : 0
274
+ family = " retool-workflows-backend"
275
+ task_role_arn = aws_iam_role. task_role . arn
276
+ execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
277
+ requires_compatibilities = var. launch_type == " FARGATE" ? [" FARGATE" ] : null
278
+ network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
279
+ cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_backend" ][" cpu" ] : null
280
+ memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_backend" ][" memory" ] : null
277
281
container_definitions = jsonencode (
278
282
[
279
283
{
@@ -321,14 +325,14 @@ resource "aws_ecs_task_definition" "retool_workflows_backend" {
321
325
)
322
326
}
323
327
resource "aws_ecs_task_definition" "retool_workflows_worker" {
324
- count = var. workflows_enabled ? 1 : 0
325
- family = " retool-workflows-worker"
326
- task_role_arn = aws_iam_role. task_role . arn
327
- execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
328
- requires_compatibilities = var. launch_type == " FARGATE" ? [" FARGATE" ] : null
329
- network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
330
- cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_worker" ][" cpu" ] : null
331
- memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_worker" ][" memory" ] : null
328
+ count = var. workflows_enabled ? 1 : 0
329
+ family = " retool-workflows-worker"
330
+ task_role_arn = aws_iam_role. task_role . arn
331
+ execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
332
+ requires_compatibilities = var. launch_type == " FARGATE" ? [" FARGATE" ] : null
333
+ network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
334
+ cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_worker" ][" cpu" ] : null
335
+ memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_worker" ][" memory" ] : null
332
336
container_definitions = jsonencode (
333
337
[
334
338
{
@@ -381,13 +385,13 @@ resource "aws_ecs_task_definition" "retool_workflows_worker" {
381
385
}
382
386
383
387
resource "aws_service_discovery_private_dns_namespace" "retoolsvc" {
384
- count = var. workflows_enabled ? 1 : 0
388
+ count = var. workflows_enabled ? 1 : 0
385
389
name = " retoolsvc"
386
390
description = " Service Discovery namespace for Retool deployment"
387
391
vpc = var. vpc_id
388
392
}
389
393
390
- resource "aws_service_discovery_service" "retool_workflow_backend_service" {
394
+ resource "aws_service_discovery_service" "retool_workflow_backend_service" {
391
395
count = var. workflows_enabled ? 1 : 0
392
396
name = " workflow-backend"
393
397
@@ -408,17 +412,20 @@ resource "aws_service_discovery_service" "retool_workflow_backend_service" {
408
412
}
409
413
410
414
module "temporal" {
411
- count = var. workflows_enabled && ! var. use_exising_temporal_cluster ? 1 : 0
415
+ count = var. workflows_enabled && ! var. use_exising_temporal_cluster ? 1 : 0
412
416
source = " ./temporal"
413
-
414
- deployment_name = " ${ var . deployment_name } -temporal"
415
- vpc_id = var. vpc_id
416
- subnet_ids = var. subnet_ids
417
- private_dns_namespace_id = aws_service_discovery_private_dns_namespace. retoolsvc [0 ]. id
418
- aws_cloudwatch_log_group_id = aws_cloudwatch_log_group. this . id
419
- aws_region = var. aws_region
420
- aws_ecs_cluster_id = aws_ecs_cluster. this . id
421
- launch_type = var. launch_type
422
- container_sg_id = aws_security_group. containers . id
417
+
418
+ deployment_name = " ${ var . deployment_name } -temporal"
419
+ vpc_id = var. vpc_id
420
+ subnet_ids = var. subnet_ids
421
+ private_dns_namespace_id = aws_service_discovery_private_dns_namespace. retoolsvc [0 ]. id
422
+ aws_cloudwatch_log_group_id = aws_cloudwatch_log_group. this . id
423
+ aws_region = var. aws_region
424
+ aws_ecs_cluster_id = aws_ecs_cluster. this . id
425
+ launch_type = var. launch_type
426
+ container_sg_id = aws_security_group. containers . id
423
427
aws_ecs_capacity_provider_name = var. launch_type == " EC2" ? aws_ecs_capacity_provider. this [0 ]. name : null
428
+ kms_key_id = var. temporal_aurora_kms_key_id
429
+ backup_window = var. temporal_aurora_backup_window
430
+ backup_retention_in_days = var. temporal_aurora_backup_retention_in_days
424
431
}
0 commit comments