|
| 1 | +locals { |
| 2 | + create_db_subnet_group = var.create_db_subnet_group && var.putin_khuylo |
| 3 | + create_db_parameter_group = var.create_db_parameter_group && var.putin_khuylo |
| 4 | + create_db_instance = var.create_db_instance && var.putin_khuylo |
| 5 | + |
| 6 | + db_subnet_group_name = var.create_db_subnet_group ? module.db_subnet_group.db_subnet_group_id : var.db_subnet_group_name |
| 7 | + parameter_group_name_id = var.create_db_parameter_group ? module.db_parameter_group.db_parameter_group_id : var.parameter_group_name |
| 8 | + |
| 9 | + create_db_option_group = var.create_db_option_group && var.engine != "postgres" |
| 10 | + option_group = local.create_db_option_group ? module.db_option_group.db_option_group_id : var.option_group_name |
| 11 | +} |
| 12 | + |
| 13 | +module "db_subnet_group" { |
| 14 | + source = "./modules/db_subnet_group" |
| 15 | + |
| 16 | + create = local.create_db_subnet_group |
| 17 | + |
| 18 | + name = coalesce(var.db_subnet_group_name, var.identifier) |
| 19 | + use_name_prefix = var.db_subnet_group_use_name_prefix |
| 20 | + description = var.db_subnet_group_description |
| 21 | + subnet_ids = var.subnet_ids |
| 22 | + |
| 23 | + tags = merge(var.tags, var.db_subnet_group_tags) |
| 24 | +} |
| 25 | + |
| 26 | +module "db_parameter_group" { |
| 27 | + source = "./modules/db_parameter_group" |
| 28 | + |
| 29 | + create = local.create_db_parameter_group |
| 30 | + |
| 31 | + name = coalesce(var.parameter_group_name, var.identifier) |
| 32 | + use_name_prefix = var.parameter_group_use_name_prefix |
| 33 | + description = var.parameter_group_description |
| 34 | + family = var.family |
| 35 | + |
| 36 | + parameters = var.parameters |
| 37 | + skip_destroy = var.parameter_group_skip_destroy |
| 38 | + |
| 39 | + tags = merge(var.tags, var.db_parameter_group_tags) |
| 40 | +} |
| 41 | + |
| 42 | +module "db_option_group" { |
| 43 | + source = "./modules/db_option_group" |
| 44 | + |
| 45 | + create = local.create_db_option_group |
| 46 | + |
| 47 | + name = coalesce(var.option_group_name, var.identifier) |
| 48 | + use_name_prefix = var.option_group_use_name_prefix |
| 49 | + option_group_description = var.option_group_description |
| 50 | + engine_name = var.engine |
| 51 | + major_engine_version = var.major_engine_version |
| 52 | + |
| 53 | + options = var.options |
| 54 | + skip_destroy = var.option_group_skip_destroy |
| 55 | + |
| 56 | + timeouts = var.option_group_timeouts |
| 57 | + |
| 58 | + tags = merge(var.tags, var.db_option_group_tags) |
| 59 | +} |
| 60 | + |
| 61 | +module "db_instance" { |
| 62 | + source = "./modules/db_instance" |
| 63 | + |
| 64 | + create = local.create_db_instance |
| 65 | + identifier = var.identifier |
| 66 | + use_identifier_prefix = var.instance_use_identifier_prefix |
| 67 | + |
| 68 | + engine = var.engine |
| 69 | + engine_version = var.engine_version |
| 70 | + engine_lifecycle_support = var.engine_lifecycle_support |
| 71 | + instance_class = var.instance_class |
| 72 | + allocated_storage = var.allocated_storage |
| 73 | + storage_type = var.storage_type |
| 74 | + storage_encrypted = var.storage_encrypted |
| 75 | + kms_key_id = var.kms_key_id |
| 76 | + license_model = var.license_model |
| 77 | + |
| 78 | + db_name = var.db_name |
| 79 | + username = var.username |
| 80 | + password = var.manage_master_user_password ? null : var.password |
| 81 | + port = var.port |
| 82 | + domain = var.domain |
| 83 | + domain_auth_secret_arn = var.domain_auth_secret_arn |
| 84 | + domain_dns_ips = var.domain_dns_ips |
| 85 | + domain_fqdn = var.domain_fqdn |
| 86 | + domain_iam_role_name = var.domain_iam_role_name |
| 87 | + domain_ou = var.domain_ou |
| 88 | + iam_database_authentication_enabled = var.iam_database_authentication_enabled |
| 89 | + custom_iam_instance_profile = var.custom_iam_instance_profile |
| 90 | + manage_master_user_password = var.manage_master_user_password |
| 91 | + master_user_secret_kms_key_id = var.master_user_secret_kms_key_id |
| 92 | + |
| 93 | + manage_master_user_password_rotation = var.manage_master_user_password_rotation |
| 94 | + master_user_password_rotate_immediately = var.master_user_password_rotate_immediately |
| 95 | + master_user_password_rotation_automatically_after_days = var.master_user_password_rotation_automatically_after_days |
| 96 | + master_user_password_rotation_duration = var.master_user_password_rotation_duration |
| 97 | + master_user_password_rotation_schedule_expression = var.master_user_password_rotation_schedule_expression |
| 98 | + |
| 99 | + vpc_security_group_ids = var.vpc_security_group_ids |
| 100 | + db_subnet_group_name = local.db_subnet_group_name |
| 101 | + parameter_group_name = local.parameter_group_name_id |
| 102 | + option_group_name = var.engine != "postgres" ? local.option_group : null |
| 103 | + network_type = var.network_type |
| 104 | + |
| 105 | + availability_zone = var.availability_zone |
| 106 | + multi_az = var.multi_az |
| 107 | + iops = var.iops |
| 108 | + storage_throughput = var.storage_throughput |
| 109 | + publicly_accessible = var.publicly_accessible |
| 110 | + ca_cert_identifier = var.ca_cert_identifier |
| 111 | + dedicated_log_volume = var.dedicated_log_volume |
| 112 | + upgrade_storage_config = var.upgrade_storage_config |
| 113 | + |
| 114 | + allow_major_version_upgrade = var.allow_major_version_upgrade |
| 115 | + auto_minor_version_upgrade = var.auto_minor_version_upgrade |
| 116 | + apply_immediately = var.apply_immediately |
| 117 | + maintenance_window = var.maintenance_window |
| 118 | + blue_green_update = var.blue_green_update |
| 119 | + |
| 120 | + snapshot_identifier = var.snapshot_identifier |
| 121 | + copy_tags_to_snapshot = var.copy_tags_to_snapshot |
| 122 | + skip_final_snapshot = var.skip_final_snapshot |
| 123 | + final_snapshot_identifier_prefix = var.final_snapshot_identifier_prefix |
| 124 | + |
| 125 | + performance_insights_enabled = var.performance_insights_enabled |
| 126 | + performance_insights_retention_period = var.performance_insights_retention_period |
| 127 | + performance_insights_kms_key_id = var.performance_insights_enabled ? var.performance_insights_kms_key_id : null |
| 128 | + |
| 129 | + replicate_source_db = var.replicate_source_db |
| 130 | + replica_mode = var.replica_mode |
| 131 | + backup_retention_period = var.backup_retention_period |
| 132 | + backup_window = var.backup_window |
| 133 | + max_allocated_storage = var.max_allocated_storage |
| 134 | + monitoring_interval = var.monitoring_interval |
| 135 | + monitoring_role_arn = var.monitoring_role_arn |
| 136 | + monitoring_role_name = var.monitoring_role_name |
| 137 | + monitoring_role_use_name_prefix = var.monitoring_role_use_name_prefix |
| 138 | + monitoring_role_description = var.monitoring_role_description |
| 139 | + create_monitoring_role = var.create_monitoring_role |
| 140 | + monitoring_role_permissions_boundary = var.monitoring_role_permissions_boundary |
| 141 | + |
| 142 | + character_set_name = var.character_set_name |
| 143 | + nchar_character_set_name = var.nchar_character_set_name |
| 144 | + timezone = var.timezone |
| 145 | + |
| 146 | + enabled_cloudwatch_logs_exports = var.enabled_cloudwatch_logs_exports |
| 147 | + create_cloudwatch_log_group = var.create_cloudwatch_log_group |
| 148 | + cloudwatch_log_group_retention_in_days = var.cloudwatch_log_group_retention_in_days |
| 149 | + cloudwatch_log_group_kms_key_id = var.cloudwatch_log_group_kms_key_id |
| 150 | + cloudwatch_log_group_skip_destroy = var.cloudwatch_log_group_skip_destroy |
| 151 | + cloudwatch_log_group_class = var.cloudwatch_log_group_class |
| 152 | + cloudwatch_log_group_tags = var.cloudwatch_log_group_tags |
| 153 | + |
| 154 | + timeouts = var.timeouts |
| 155 | + |
| 156 | + deletion_protection = var.deletion_protection |
| 157 | + delete_automated_backups = var.delete_automated_backups |
| 158 | + |
| 159 | + restore_to_point_in_time = var.restore_to_point_in_time |
| 160 | + s3_import = var.s3_import |
| 161 | + |
| 162 | + db_instance_tags = var.db_instance_tags |
| 163 | + tags = var.tags |
| 164 | +} |
| 165 | + |
| 166 | +module "db_instance_role_association" { |
| 167 | + source = "./modules/db_instance_role_association" |
| 168 | + |
| 169 | + for_each = { for k, v in var.db_instance_role_associations : k => v if var.create_db_instance } |
| 170 | + |
| 171 | + feature_name = each.key |
| 172 | + role_arn = each.value |
| 173 | + db_instance_identifier = module.db_instance.db_instance_identifier |
| 174 | +} |
0 commit comments