@@ -17,12 +17,12 @@ resource "aws_cloudwatch_log_group" "this" {
1717}
1818
1919resource "aws_db_subnet_group" "this" {
20- name = " ${ var . deployment_name } -retool"
20+ name = " ${ var . deployment_name } -retool"
2121 subnet_ids = var. subnet_ids
2222}
2323
2424resource "aws_db_instance" "this" {
25- identifier = " ${ var . deployment_name } -rds-instance"
25+ identifier = " ${ var . deployment_name } -rds-instance"
2626 allocated_storage = 80
2727 instance_class = var. rds_instance_class
2828 engine = " postgres"
@@ -35,9 +35,17 @@ resource "aws_db_instance" "this" {
3535 vpc_security_group_ids = [aws_security_group . rds . id ]
3636 db_subnet_group_name = aws_db_subnet_group. this . id
3737 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+ }
4149}
4250
4351resource "aws_ecs_service" "retool" {
@@ -65,7 +73,7 @@ resource "aws_ecs_service" "retool" {
6573 dynamic "network_configuration" {
6674 for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
6775
68- content {
76+ content {
6977 subnets = var. subnet_ids
7078 security_groups = [
7179 aws_security_group . containers . id
@@ -92,7 +100,7 @@ resource "aws_ecs_service" "jobs_runner" {
92100
93101 for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
94102
95- content {
103+ content {
96104 subnets = var. subnet_ids
97105 security_groups = [
98106 aws_security_group . containers . id
@@ -108,7 +116,7 @@ resource "aws_ecs_service" "workflows_backend" {
108116 cluster = aws_ecs_cluster. this . id
109117 desired_count = 1
110118 task_definition = aws_ecs_task_definition. retool_workflows_backend [0 ]. arn
111-
119+
112120 # Need to explictly set this in aws_ecs_service to avoid destructive behavior: https://github.com/hashicorp/terraform-provider-aws/issues/22823
113121 capacity_provider_strategy {
114122 base = 1
@@ -123,7 +131,7 @@ resource "aws_ecs_service" "workflows_backend" {
123131
124132 for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
125133
126- content {
134+ content {
127135 subnets = var. subnet_ids
128136 security_groups = [
129137 aws_security_group . containers . id
@@ -150,7 +158,7 @@ resource "aws_ecs_service" "workflows_worker" {
150158
151159 for_each = var. launch_type == " FARGATE" ? toset ([1 ]) : toset ([])
152160
153- content {
161+ content {
154162 subnets = var. subnet_ids
155163 security_groups = [
156164 aws_security_group . containers . id
@@ -161,13 +169,13 @@ resource "aws_ecs_service" "workflows_worker" {
161169}
162170
163171resource "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
167175 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
171179 container_definitions = jsonencode (
172180 [
173181 {
@@ -211,13 +219,13 @@ resource "aws_ecs_task_definition" "retool_jobs_runner" {
211219 )
212220}
213221resource "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
217225 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
221229 container_definitions = jsonencode (
222230 [
223231 {
@@ -266,14 +274,14 @@ resource "aws_ecs_task_definition" "retool" {
266274}
267275
268276resource "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
277285 container_definitions = jsonencode (
278286 [
279287 {
@@ -321,14 +329,14 @@ resource "aws_ecs_task_definition" "retool_workflows_backend" {
321329 )
322330}
323331resource "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
332340 container_definitions = jsonencode (
333341 [
334342 {
@@ -381,13 +389,13 @@ resource "aws_ecs_task_definition" "retool_workflows_worker" {
381389}
382390
383391resource "aws_service_discovery_private_dns_namespace" "retoolsvc" {
384- count = var. workflows_enabled ? 1 : 0
392+ count = var. workflows_enabled ? 1 : 0
385393 name = " retoolsvc"
386394 description = " Service Discovery namespace for Retool deployment"
387395 vpc = var. vpc_id
388396}
389397
390- resource "aws_service_discovery_service" "retool_workflow_backend_service" {
398+ resource "aws_service_discovery_service" "retool_workflow_backend_service" {
391399 count = var. workflows_enabled ? 1 : 0
392400 name = " workflow-backend"
393401
@@ -408,17 +416,20 @@ resource "aws_service_discovery_service" "retool_workflow_backend_service" {
408416}
409417
410418module "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
412420 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
423431 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
424435}
0 commit comments