Skip to content

Commit 3dbb64e

Browse files
committed
add RDS root module
1 parent 0c1c737 commit 3dbb64e

File tree

33 files changed

+2666
-0
lines changed

33 files changed

+2666
-0
lines changed
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
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

Comments
 (0)