@@ -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,17 @@ 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
45
+
46
+ lifecycle {
47
+ ignore_changes = [engine_version ]
48
+ }
41
49
}
42
50
43
51
resource "aws_ecs_service" "retool" {
@@ -65,7 +73,7 @@ resource "aws_ecs_service" "retool" {
65
73
dynamic "network_configuration" {
66
74
for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
67
75
68
- content {
76
+ content {
69
77
subnets = var. subnet_ids
70
78
security_groups = [
71
79
aws_security_group . containers . id
@@ -92,7 +100,7 @@ resource "aws_ecs_service" "jobs_runner" {
92
100
93
101
for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
94
102
95
- content {
103
+ content {
96
104
subnets = var. subnet_ids
97
105
security_groups = [
98
106
aws_security_group . containers . id
@@ -108,7 +116,7 @@ resource "aws_ecs_service" "workflows_backend" {
108
116
cluster = aws_ecs_cluster. this . id
109
117
desired_count = 1
110
118
task_definition = aws_ecs_task_definition. retool_workflows_backend [0 ]. arn
111
-
119
+
112
120
# Need to explictly set this in aws_ecs_service to avoid destructive behavior: https://github.com/hashicorp/terraform-provider-aws/issues/22823
113
121
capacity_provider_strategy {
114
122
base = 1
@@ -123,7 +131,7 @@ resource "aws_ecs_service" "workflows_backend" {
123
131
124
132
for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
125
133
126
- content {
134
+ content {
127
135
subnets = var. subnet_ids
128
136
security_groups = [
129
137
aws_security_group . containers . id
@@ -150,7 +158,7 @@ resource "aws_ecs_service" "workflows_worker" {
150
158
151
159
for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
152
160
153
- content {
161
+ content {
154
162
subnets = var. subnet_ids
155
163
security_groups = [
156
164
aws_security_group . containers . id
@@ -161,13 +169,13 @@ resource "aws_ecs_service" "workflows_worker" {
161
169
}
162
170
163
171
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
172
+ family = " retool-jobs-runner"
173
+ task_role_arn = aws_iam_role. task_role . arn
174
+ execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
167
175
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
176
+ network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
177
+ cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" jobs_runner" ][" cpu" ] : null
178
+ memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" jobs_runner" ][" memory" ] : null
171
179
container_definitions = jsonencode (
172
180
[
173
181
{
@@ -211,13 +219,13 @@ resource "aws_ecs_task_definition" "retool_jobs_runner" {
211
219
)
212
220
}
213
221
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
222
+ family = " retool"
223
+ task_role_arn = aws_iam_role. task_role . arn
224
+ execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
217
225
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
226
+ network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
227
+ cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" main" ][" cpu" ] : null
228
+ memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" main" ][" memory" ] : null
221
229
container_definitions = jsonencode (
222
230
[
223
231
{
@@ -266,14 +274,14 @@ resource "aws_ecs_task_definition" "retool" {
266
274
}
267
275
268
276
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
277
+ count = var. workflows_enabled ? 1 : 0
278
+ family = " retool-workflows-backend"
279
+ task_role_arn = aws_iam_role. task_role . arn
280
+ execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
281
+ requires_compatibilities = var. launch_type == " FARGATE" ? [" FARGATE" ] : null
282
+ network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
283
+ cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_backend" ][" cpu" ] : null
284
+ memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_backend" ][" memory" ] : null
277
285
container_definitions = jsonencode (
278
286
[
279
287
{
@@ -321,14 +329,14 @@ resource "aws_ecs_task_definition" "retool_workflows_backend" {
321
329
)
322
330
}
323
331
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
332
+ count = var. workflows_enabled ? 1 : 0
333
+ family = " retool-workflows-worker"
334
+ task_role_arn = aws_iam_role. task_role . arn
335
+ execution_role_arn = var. launch_type == " FARGATE" ? aws_iam_role. execution_role [0 ]. arn : null
336
+ requires_compatibilities = var. launch_type == " FARGATE" ? [" FARGATE" ] : null
337
+ network_mode = var. launch_type == " FARGATE" ? " awsvpc" : " bridge"
338
+ cpu = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_worker" ][" cpu" ] : null
339
+ memory = var. launch_type == " FARGATE" ? var. ecs_task_resource_map [" workflows_worker" ][" memory" ] : null
332
340
container_definitions = jsonencode (
333
341
[
334
342
{
@@ -381,13 +389,13 @@ resource "aws_ecs_task_definition" "retool_workflows_worker" {
381
389
}
382
390
383
391
resource "aws_service_discovery_private_dns_namespace" "retoolsvc" {
384
- count = var. workflows_enabled ? 1 : 0
392
+ count = var. workflows_enabled ? 1 : 0
385
393
name = " retoolsvc"
386
394
description = " Service Discovery namespace for Retool deployment"
387
395
vpc = var. vpc_id
388
396
}
389
397
390
- resource "aws_service_discovery_service" "retool_workflow_backend_service" {
398
+ resource "aws_service_discovery_service" "retool_workflow_backend_service" {
391
399
count = var. workflows_enabled ? 1 : 0
392
400
name = " workflow-backend"
393
401
@@ -408,17 +416,20 @@ resource "aws_service_discovery_service" "retool_workflow_backend_service" {
408
416
}
409
417
410
418
module "temporal" {
411
- count = var. workflows_enabled && ! var. use_exising_temporal_cluster ? 1 : 0
419
+ count = var. workflows_enabled && ! var. use_exising_temporal_cluster ? 1 : 0
412
420
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
421
+
422
+ deployment_name = " ${ var . deployment_name } -temporal"
423
+ vpc_id = var. vpc_id
424
+ subnet_ids = var. subnet_ids
425
+ private_dns_namespace_id = aws_service_discovery_private_dns_namespace. retoolsvc [0 ]. id
426
+ aws_cloudwatch_log_group_id = aws_cloudwatch_log_group. this . id
427
+ aws_region = var. aws_region
428
+ aws_ecs_cluster_id = aws_ecs_cluster. this . id
429
+ launch_type = var. launch_type
430
+ container_sg_id = aws_security_group. containers . id
423
431
aws_ecs_capacity_provider_name = var. launch_type == " EC2" ? aws_ecs_capacity_provider. this [0 ]. name : null
432
+ kms_key_id = var. temporal_aurora_kms_key_id
433
+ backup_window = var. temporal_aurora_backup_window
434
+ backup_retention_in_days = var. temporal_aurora_backup_retention_in_days
424
435
}
0 commit comments