Skip to content

Commit 2b7f945

Browse files
committed
fix: remove duplicated instance just for sqlserver, we can handle as one flattened resource
1 parent bb05127 commit 2b7f945

File tree

4 files changed

+18
-106
lines changed

4 files changed

+18
-106
lines changed

main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ module "db_instance" {
7777
storage_encrypted = var.storage_encrypted
7878
kms_key_id = var.kms_key_id
7979
license_model = var.license_model
80-
replica_mode = var.replica_mode
8180

8281
db_name = var.db_name
8382
username = var.username
@@ -113,6 +112,7 @@ module "db_instance" {
113112
performance_insights_kms_key_id = var.performance_insights_enabled ? var.performance_insights_kms_key_id : null
114113

115114
replicate_source_db = var.replicate_source_db
115+
replica_mode = var.replica_mode
116116
backup_retention_period = var.backup_retention_period
117117
backup_window = var.backup_window
118118
max_allocated_storage = var.max_allocated_storage

modules/db_instance/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ No modules.
2525
| Name | Type |
2626
|------|------|
2727
| [aws_db_instance.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance) | resource |
28-
| [aws_db_instance.this_mssql](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance) | resource |
2928
| [aws_iam_role.enhanced_monitoring](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
3029
| [aws_iam_role_policy_attachment.enhanced_monitoring](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
3130
| [random_id.snapshot_identifier](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id) | resource |

modules/db_instance/main.tf

Lines changed: 2 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ resource "aws_db_instance" "this" {
3838
storage_encrypted = var.storage_encrypted
3939
kms_key_id = var.kms_key_id
4040
license_model = var.license_model
41-
replica_mode = var.replica_mode
4241

4342
db_name = var.db_name
4443
username = local.username
@@ -74,13 +73,15 @@ resource "aws_db_instance" "this" {
7473
performance_insights_kms_key_id = var.performance_insights_enabled ? var.performance_insights_kms_key_id : null
7574

7675
replicate_source_db = var.replicate_source_db
76+
replica_mode = var.replica_mode
7777
backup_retention_period = var.backup_retention_period
7878
backup_window = var.backup_window
7979
max_allocated_storage = var.max_allocated_storage
8080
monitoring_interval = var.monitoring_interval
8181
monitoring_role_arn = var.monitoring_interval > 0 ? local.monitoring_role_arn : null
8282

8383
character_set_name = var.character_set_name
84+
timezone = var.timezone
8485
enabled_cloudwatch_logs_exports = var.enabled_cloudwatch_logs_exports
8586

8687
deletion_protection = var.deletion_protection
@@ -124,94 +125,6 @@ resource "aws_db_instance" "this" {
124125
}
125126
}
126127

127-
resource "aws_db_instance" "this_mssql" {
128-
count = var.create && local.is_mssql ? 1 : 0
129-
130-
identifier = var.identifier
131-
132-
engine = local.engine
133-
engine_version = var.engine_version
134-
instance_class = var.instance_class
135-
allocated_storage = var.allocated_storage
136-
storage_type = var.storage_type
137-
storage_encrypted = var.storage_encrypted
138-
kms_key_id = var.kms_key_id
139-
license_model = var.license_model
140-
replica_mode = var.replica_mode
141-
142-
db_name = var.db_name
143-
username = local.username
144-
password = local.password
145-
port = var.port
146-
domain = var.domain
147-
domain_iam_role_name = var.domain_iam_role_name
148-
iam_database_authentication_enabled = var.iam_database_authentication_enabled
149-
150-
vpc_security_group_ids = var.vpc_security_group_ids
151-
db_subnet_group_name = var.db_subnet_group_name
152-
parameter_group_name = var.parameter_group_name
153-
option_group_name = var.option_group_name
154-
155-
availability_zone = var.availability_zone
156-
multi_az = var.multi_az
157-
iops = var.iops
158-
publicly_accessible = var.publicly_accessible
159-
ca_cert_identifier = var.ca_cert_identifier
160-
161-
allow_major_version_upgrade = var.allow_major_version_upgrade
162-
auto_minor_version_upgrade = var.auto_minor_version_upgrade
163-
apply_immediately = var.apply_immediately
164-
maintenance_window = var.maintenance_window
165-
166-
snapshot_identifier = var.snapshot_identifier
167-
copy_tags_to_snapshot = var.copy_tags_to_snapshot
168-
skip_final_snapshot = var.skip_final_snapshot
169-
final_snapshot_identifier = local.final_snapshot_identifier
170-
171-
performance_insights_enabled = var.performance_insights_enabled
172-
performance_insights_retention_period = var.performance_insights_enabled ? var.performance_insights_retention_period : null
173-
performance_insights_kms_key_id = var.performance_insights_enabled ? var.performance_insights_kms_key_id : null
174-
175-
replicate_source_db = var.replicate_source_db
176-
backup_retention_period = var.backup_retention_period
177-
backup_window = var.backup_window
178-
max_allocated_storage = var.max_allocated_storage
179-
monitoring_interval = var.monitoring_interval
180-
monitoring_role_arn = var.monitoring_interval > 0 ? local.monitoring_role_arn : null
181-
182-
character_set_name = var.character_set_name
183-
timezone = var.timezone # MSSQL only
184-
enabled_cloudwatch_logs_exports = var.enabled_cloudwatch_logs_exports
185-
186-
deletion_protection = var.deletion_protection
187-
delete_automated_backups = var.delete_automated_backups
188-
189-
dynamic "restore_to_point_in_time" {
190-
for_each = var.restore_to_point_in_time != null ? [var.restore_to_point_in_time] : []
191-
192-
content {
193-
restore_time = lookup(restore_to_point_in_time.value, "restore_time", null)
194-
source_db_instance_identifier = lookup(restore_to_point_in_time.value, "source_db_instance_identifier", null)
195-
source_dbi_resource_id = lookup(restore_to_point_in_time.value, "source_dbi_resource_id", null)
196-
use_latest_restorable_time = lookup(restore_to_point_in_time.value, "use_latest_restorable_time", null)
197-
}
198-
}
199-
200-
tags = var.tags
201-
202-
timeouts {
203-
create = lookup(var.timeouts, "create", null)
204-
delete = lookup(var.timeouts, "delete", null)
205-
update = lookup(var.timeouts, "update", null)
206-
}
207-
208-
lifecycle {
209-
ignore_changes = [
210-
latest_restorable_time
211-
]
212-
}
213-
}
214-
215128
################################################################################
216129
# Enhanced monitoring
217130
################################################################################

modules/db_instance/outputs.tf

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,77 +10,77 @@ output "enhanced_monitoring_iam_role_arn" {
1010

1111
output "db_instance_address" {
1212
description = "The address of the RDS instance"
13-
value = try(aws_db_instance.this_mssql[0].address, aws_db_instance.this[0].address, "")
13+
value = try(aws_db_instance.this[0].address, "")
1414
}
1515

1616
output "db_instance_arn" {
1717
description = "The ARN of the RDS instance"
18-
value = try(aws_db_instance.this_mssql[0].arn, aws_db_instance.this[0].arn, "")
18+
value = try(aws_db_instance.this[0].arn, "")
1919
}
2020

2121
output "db_instance_availability_zone" {
2222
description = "The availability zone of the RDS instance"
23-
value = try(aws_db_instance.this_mssql[0].availability_zone, aws_db_instance.this[0].availability_zone, "")
23+
value = try(aws_db_instance.this[0].availability_zone, "")
2424
}
2525

2626
output "db_instance_endpoint" {
2727
description = "The connection endpoint"
28-
value = try(aws_db_instance.this_mssql[0].endpoint, aws_db_instance.this[0].endpoint, "")
28+
value = try(aws_db_instance.this[0].endpoint, "")
2929
}
3030

3131
output "db_instance_hosted_zone_id" {
3232
description = "The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record)"
33-
value = try(aws_db_instance.this_mssql[0].hosted_zone_id, aws_db_instance.this[0].hosted_zone_id, "")
33+
value = try(aws_db_instance.this[0].hosted_zone_id, "")
3434
}
3535

3636
output "db_instance_id" {
3737
description = "The RDS instance ID"
38-
value = try(aws_db_instance.this_mssql[0].id, aws_db_instance.this[0].id, "")
38+
value = try(aws_db_instance.this[0].id, "")
3939
}
4040

4141
output "db_instance_resource_id" {
4242
description = "The RDS Resource ID of this instance"
43-
value = try(aws_db_instance.this_mssql[0].resource_id, aws_db_instance.this[0].resource_id, "")
43+
value = try(aws_db_instance.this[0].resource_id, "")
4444
}
4545

4646
output "db_instance_status" {
4747
description = "The RDS instance status"
48-
value = try(aws_db_instance.this_mssql[0].status, aws_db_instance.this[0].status, "")
48+
value = try(aws_db_instance.this[0].status, "")
4949
}
5050

5151
output "db_instance_name" {
5252
description = "The database name"
53-
value = try(aws_db_instance.this_mssql[0].name, aws_db_instance.this[0].name, "")
53+
value = try(aws_db_instance.this[0].name, "")
5454
}
5555

5656
output "db_instance_username" {
5757
description = "The master username for the database"
58-
value = try(aws_db_instance.this_mssql[0].username, aws_db_instance.this[0].username, "")
58+
value = try(aws_db_instance.this[0].username, "")
5959
sensitive = true
6060
}
6161

6262
output "db_instance_port" {
6363
description = "The database port"
64-
value = try(aws_db_instance.this_mssql[0].port, aws_db_instance.this[0].port, "")
64+
value = try(aws_db_instance.this[0].port, "")
6565
}
6666

6767
output "db_instance_ca_cert_identifier" {
6868
description = "Specifies the identifier of the CA certificate for the DB instance"
69-
value = try(aws_db_instance.this_mssql[0].ca_cert_identifier, aws_db_instance.this[0].ca_cert_identifier, "")
69+
value = try(aws_db_instance.this[0].ca_cert_identifier, "")
7070
}
7171

7272
output "db_instance_domain" {
7373
description = "The ID of the Directory Service Active Directory domain the instance is joined to"
74-
value = try(aws_db_instance.this_mssql[0].domain, aws_db_instance.this[0].domain, "")
74+
value = try(aws_db_instance.this[0].domain, "")
7575
}
7676

7777
output "db_instance_domain_iam_role_name" {
7878
description = "The name of the IAM role to be used when making API calls to the Directory Service. "
79-
value = try(aws_db_instance.this_mssql[0].domain_iam_role_name, aws_db_instance.this[0].domain_iam_role_name, "")
79+
value = try(aws_db_instance.this[0].domain_iam_role_name, "")
8080
}
8181

8282
output "db_instance_master_password" {
8383
description = "The master password"
84-
value = try(aws_db_instance.this_mssql[0].password, aws_db_instance.this[0].password, "")
84+
value = try(aws_db_instance.this[0].password, "")
8585
sensitive = true
8686
}

0 commit comments

Comments
 (0)