@@ -97,47 +97,61 @@ variable "deletion_protection" {
97
97
description = " The database can't be deleted when this value is set to true."
98
98
default = false
99
99
}
100
+ variable "storage_type" {
101
+ description = " One of 'standard', 'gp2', 'gp3' (new generation of general purpose SSD), or 'io1'."
102
+ default = " gp3"
103
+ }
104
+ variable "identifier" {
105
+ description = " The name of the RDS instance"
106
+ default = " "
107
+ }
108
+ variable "iam_database_authentication_enabled" {
109
+ description = " Specifies whether or mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled"
110
+ default = true
111
+ }
100
112
101
113
locals {
102
- name = var. name
103
- id = lower (replace (var. name , " " , " -" ))
104
- subnet_group_name = lower (replace (var. name , " " , " -" ))
105
- username = var. username == " " ? random_pet. username . id : var. username
106
- password = var. password == " " ? random_password. password . result : var. password
107
- database = var. database == " " ? random_pet. db_name . id : var. database
108
- parameter_group_name = var. parameter_group_name
109
- rds_with_param_group = local. parameter_group_name == " " ? 0 : 1
110
- rds_without_param_group = local. parameter_group_name == " " ? 1 : 0
111
- parameter_prefix = var. parameter_prefix == " " ? " " : " ${ var . parameter_prefix } /${ local . id } "
112
- store_parameters = var. parameter_prefix == " " ? 0 : 1
113
- instance_type = var. instance_type
114
- engine_version = var. engine_version
115
- family = " mysql${ var . engine_version } "
116
- disk_size = var. disk_size
117
- multi_az = var. multi_az
118
- backup_window = var. backup_window
119
- backup_retention_period = var. backup_retention_period
120
- publicly_accessible = var. publicly_accessible
121
- apply_immediately = var. apply_immediately
122
- deletion_protection = var. deletion_protection
123
- trusted_cidr_blocks = var. trusted_cidr_blocks
124
- db_subnets = var. db_subnets
125
- vpc_id = data. aws_subnet . default . vpc_id
126
- address = local. parameter_group_name == " " ? join (" " , aws_db_instance. default . * . address ) : join (" " , aws_db_instance. parameterized . * . address )
127
- hosted_zone_id = local. parameter_group_name == " " ? join (" " , aws_db_instance. default . * . hosted_zone_id ) : join (" " , aws_db_instance. parameterized . * . hosted_zone_id )
128
- rds_id = local. parameter_group_name == " " ? join (" " , aws_db_instance. default . * . id ) : join (" " , aws_db_instance. parameterized . * . id )
129
- logs_set = compact ([
114
+ name = var. name
115
+ id = length (var. identifier ) > 0 ? var. identifier : lower (replace (var. name , " " , " -" ))
116
+ subnet_group_name = lower (replace (var. name , " " , " -" ))
117
+ username = var. username == " " ? random_pet. username . id : var. username
118
+ password = var. password == " " ? random_password. password . result : var. password
119
+ database = var. database == " " ? random_pet. db_name . id : var. database
120
+ parameter_group_name = var. parameter_group_name
121
+ rds_with_param_group = local. parameter_group_name == " " ? 0 : 1
122
+ rds_without_param_group = local. parameter_group_name == " " ? 1 : 0
123
+ parameter_prefix = var. parameter_prefix == " " ? " " : " ${ var . parameter_prefix } /${ local . id } "
124
+ store_parameters = var. parameter_prefix == " " ? 0 : 1
125
+ instance_type = var. instance_type
126
+ engine_version = var. engine_version
127
+ family = " mysql${ var . engine_version } "
128
+ disk_size = var. disk_size
129
+ multi_az = var. multi_az
130
+ backup_window = var. backup_window
131
+ backup_retention_period = var. backup_retention_period
132
+ publicly_accessible = var. publicly_accessible
133
+ apply_immediately = var. apply_immediately
134
+ deletion_protection = var. deletion_protection
135
+ trusted_cidr_blocks = var. trusted_cidr_blocks
136
+ db_subnets = var. db_subnets
137
+ vpc_id = data. aws_subnet . default . vpc_id
138
+ address = local. parameter_group_name == " " ? join (" " , aws_db_instance. default . * . address ) : join (" " , aws_db_instance. parameterized . * . address )
139
+ hosted_zone_id = local. parameter_group_name == " " ? join (" " , aws_db_instance. default . * . hosted_zone_id ) : join (" " , aws_db_instance. parameterized . * . hosted_zone_id )
140
+ rds_id = local. parameter_group_name == " " ? join (" " , aws_db_instance. default . * . id ) : join (" " , aws_db_instance. parameterized . * . id )
141
+ storage_type = var. storage_type
142
+ iam_database_authentication_enabled = var. iam_database_authentication_enabled
143
+ logs_set = compact ([
130
144
var . enable_audit_log ? " audit" : " " ,
131
145
var . enable_error_log ? " error" : " " ,
132
146
var . enable_general_log ? " general" : " " ,
133
147
var . enable_slowquery_log ? " slowquery" : " " ,
134
148
])
135
149
enhanced_monitoring_interval = var. enhanced_monitoring_interval
136
150
performance_insights_enabled = var. performance_insights_enabled
137
- tags = merge ({
151
+ tags = merge ({
138
152
Name = var.name,
139
153
Module = " RDS MySQL"
140
- ModuleVersion = " v0.4 .0"
154
+ ModuleVersion = " v0.5 .0"
141
155
ModuleSource = " https://github.com/jetbrains-infra/terraform-aws-rds-mysql"
142
156
}, var. tags )
143
157
}
0 commit comments