From 7110f59c2f81251f0b50df39b5ed0ca0c926a308 Mon Sep 17 00:00:00 2001 From: Dominik Jakielski <52488859+djakielski@users.noreply.github.com> Date: Fri, 3 Jan 2025 12:25:40 +0100 Subject: [PATCH 1/6] add perfomace inside to primary cluster --- main.tf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/main.tf b/main.tf index 8f8c60d..57caa97 100644 --- a/main.tf +++ b/main.tf @@ -163,6 +163,9 @@ resource "aws_rds_cluster" "primary" { port = var.db_port enable_global_write_forwarding = var.enable_global_write_forwarding enable_local_write_forwarding = var.enable_local_write_forwarding + performance_insights_enabled = var.performance_insights_enabled + performance_insights_kms_key_id = var.performance_insights_kms_key_id + performance_insights_retention_period = var.performance_insights_retention_period depends_on = [ aws_db_subnet_group.default, From e8a695fbc459c263df2ba55d4705fd034c98eb6a Mon Sep 17 00:00:00 2001 From: RoseSecurity Date: Mon, 27 Jan 2025 20:42:28 -0500 Subject: [PATCH 2/6] refactor: run terraform fmt --- main.tf | 72 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/main.tf b/main.tf index 57caa97..5c01686 100644 --- a/main.tf +++ b/main.tf @@ -127,42 +127,42 @@ resource "aws_rds_cluster" "primary" { cluster_identifier = var.cluster_identifier == "" ? module.this.id : var.cluster_identifier database_name = var.db_name # manage_master_user_password must be `null` or `true`. If it is `false`, and `master_password` is not `null`, a conflict occurs. - manage_master_user_password = var.manage_admin_user_password ? var.manage_admin_user_password : null - master_user_secret_kms_key_id = var.admin_user_secret_kms_key_id - master_username = local.ignore_admin_credentials ? null : var.admin_user - master_password = local.ignore_admin_credentials || var.manage_admin_user_password ? null : var.admin_password - backup_retention_period = var.retention_period - preferred_backup_window = var.backup_window - copy_tags_to_snapshot = var.copy_tags_to_snapshot - final_snapshot_identifier = var.cluster_identifier == "" ? lower(module.this.id) : lower(var.cluster_identifier) - skip_final_snapshot = var.skip_final_snapshot - apply_immediately = var.apply_immediately - db_cluster_instance_class = local.is_serverless ? null : var.db_cluster_instance_class - storage_encrypted = local.is_serverless ? null : var.storage_encrypted - storage_type = var.storage_type - iops = var.iops - allocated_storage = var.allocated_storage - kms_key_id = var.kms_key_arn - source_region = var.source_region - snapshot_identifier = var.snapshot_identifier - vpc_security_group_ids = compact(flatten([join("", aws_security_group.default[*].id), var.vpc_security_group_ids])) - preferred_maintenance_window = var.maintenance_window - network_type = var.network_type - db_subnet_group_name = join("", aws_db_subnet_group.default[*].name) - db_cluster_parameter_group_name = join("", aws_rds_cluster_parameter_group.default[*].name) - iam_database_authentication_enabled = var.iam_database_authentication_enabled - tags = module.this.tags - engine = var.engine - engine_version = var.engine_version - allow_major_version_upgrade = var.allow_major_version_upgrade - db_instance_parameter_group_name = var.allow_major_version_upgrade ? join("", aws_db_parameter_group.default[*].name) : null - engine_mode = var.engine_mode - iam_roles = var.iam_roles - backtrack_window = var.backtrack_window - enable_http_endpoint = local.enable_http_endpoint - port = var.db_port - enable_global_write_forwarding = var.enable_global_write_forwarding - enable_local_write_forwarding = var.enable_local_write_forwarding + manage_master_user_password = var.manage_admin_user_password ? var.manage_admin_user_password : null + master_user_secret_kms_key_id = var.admin_user_secret_kms_key_id + master_username = local.ignore_admin_credentials ? null : var.admin_user + master_password = local.ignore_admin_credentials || var.manage_admin_user_password ? null : var.admin_password + backup_retention_period = var.retention_period + preferred_backup_window = var.backup_window + copy_tags_to_snapshot = var.copy_tags_to_snapshot + final_snapshot_identifier = var.cluster_identifier == "" ? lower(module.this.id) : lower(var.cluster_identifier) + skip_final_snapshot = var.skip_final_snapshot + apply_immediately = var.apply_immediately + db_cluster_instance_class = local.is_serverless ? null : var.db_cluster_instance_class + storage_encrypted = local.is_serverless ? null : var.storage_encrypted + storage_type = var.storage_type + iops = var.iops + allocated_storage = var.allocated_storage + kms_key_id = var.kms_key_arn + source_region = var.source_region + snapshot_identifier = var.snapshot_identifier + vpc_security_group_ids = compact(flatten([join("", aws_security_group.default[*].id), var.vpc_security_group_ids])) + preferred_maintenance_window = var.maintenance_window + network_type = var.network_type + db_subnet_group_name = join("", aws_db_subnet_group.default[*].name) + db_cluster_parameter_group_name = join("", aws_rds_cluster_parameter_group.default[*].name) + iam_database_authentication_enabled = var.iam_database_authentication_enabled + tags = module.this.tags + engine = var.engine + engine_version = var.engine_version + allow_major_version_upgrade = var.allow_major_version_upgrade + db_instance_parameter_group_name = var.allow_major_version_upgrade ? join("", aws_db_parameter_group.default[*].name) : null + engine_mode = var.engine_mode + iam_roles = var.iam_roles + backtrack_window = var.backtrack_window + enable_http_endpoint = local.enable_http_endpoint + port = var.db_port + enable_global_write_forwarding = var.enable_global_write_forwarding + enable_local_write_forwarding = var.enable_local_write_forwarding performance_insights_enabled = var.performance_insights_enabled performance_insights_kms_key_id = var.performance_insights_kms_key_id performance_insights_retention_period = var.performance_insights_retention_period From ced05b7397a692ee5b8e24a2e57de1de7c847d7d Mon Sep 17 00:00:00 2001 From: Dominik Jakielski <52488859+djakielski@users.noreply.github.com> Date: Mon, 28 Jul 2025 23:10:09 +0200 Subject: [PATCH 3/6] add auto_pause to variables.tf --- variables.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/variables.tf b/variables.tf index b145e0f..a6b313c 100644 --- a/variables.tf +++ b/variables.tf @@ -215,6 +215,7 @@ variable "serverlessv2_scaling_configuration" { type = object({ min_capacity = number max_capacity = number + seconds_until_auto_pause = optional(number,0) }) default = null description = "serverlessv2 scaling properties" From e8248d8e53003f29ae10bd7cc98599f66c50e10f Mon Sep 17 00:00:00 2001 From: Dominik Jakielski <52488859+djakielski@users.noreply.github.com> Date: Mon, 28 Jul 2025 23:12:22 +0200 Subject: [PATCH 4/6] add seconds_until_auto_pause to cluster --- main.tf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index c42d908..7a20e15 100644 --- a/main.tf +++ b/main.tf @@ -198,8 +198,9 @@ resource "aws_rds_cluster" "primary" { dynamic "serverlessv2_scaling_configuration" { for_each = var.serverlessv2_scaling_configuration[*] content { - max_capacity = serverlessv2_scaling_configuration.value.max_capacity - min_capacity = serverlessv2_scaling_configuration.value.min_capacity + max_capacity = serverlessv2_scaling_configuration.value.max_capacity + min_capacity = serverlessv2_scaling_configuration.value.min_capacity + seconds_until_auto_pause = serverlessv2_scaling_configuration.value.seconds_until_auto_pause } } From a54db382fb9c46ec3327f499b171eaa20d56cbeb Mon Sep 17 00:00:00 2001 From: Dominik Jakielski <52488859+djakielski@users.noreply.github.com> Date: Mon, 28 Jul 2025 23:15:14 +0200 Subject: [PATCH 5/6] Update main.tf --- main.tf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index 7a20e15..04e5d8b 100644 --- a/main.tf +++ b/main.tf @@ -291,8 +291,9 @@ resource "aws_rds_cluster" "secondary" { dynamic "serverlessv2_scaling_configuration" { for_each = var.serverlessv2_scaling_configuration[*] content { - max_capacity = serverlessv2_scaling_configuration.value.max_capacity - min_capacity = serverlessv2_scaling_configuration.value.min_capacity + max_capacity = serverlessv2_scaling_configuration.value.max_capacity + min_capacity = serverlessv2_scaling_configuration.value.min_capacity + seconds_until_auto_pause = serverlessv2_scaling_configuration.value.seconds_until_auto_pause } } From fb0c1ba3d4e18af3a19cfb08c9639c71c6af0532 Mon Sep 17 00:00:00 2001 From: Dominik Jakielski <52488859+djakielski@users.noreply.github.com> Date: Mon, 28 Jul 2025 23:19:19 +0200 Subject: [PATCH 6/6] Update min aws versions --- versions.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions.tf b/versions.tf index bba3b7b..532e5ff 100644 --- a/versions.tf +++ b/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.61.0" + version = ">= 5.81.0" } null = { source = "hashicorp/null"