Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4cc5f2c

Browse files
smihajlovic-frameantonbabenko
authored andcommitted
Remove T2 specifics to unify Terraform object names inside TF State (terraform-aws-modules#111)
1 parent 461a571 commit 4cc5f2c

File tree

2 files changed

+19
-109
lines changed

2 files changed

+19
-109
lines changed

‎main.tf‎

Lines changed: 3 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
locals {
2-
is_t_instance_type = replace(var.instance_type, "/^t[23]{1}\\..*$/", "1") == "1" ? 1 : 0
3-
4-
instance_count = var.instance_count * (1 - local.is_t_instance_type)
5-
t_instance_count = var.instance_count * local.is_t_instance_type
2+
is_t_instance_type = replace(var.instance_type, "/^t[23]{1}\\..*$/", "1") == "1" ? true : false
63
}
74

85
######
96
# Note: network_interface can't be specified together with associate_public_ip_address
107
######
118
resource "aws_instance" "this" {
12-
count = local.instance_count>0? local.instance_count:0
9+
count = var.instance_count
1310

1411
ami = var.ami
1512
instance_type = var.instance_type
@@ -83,96 +80,10 @@ resource "aws_instance" "this" {
8380
var.volume_tags,
8481
)
8582

86-
lifecycle {
87-
# Due to several known issues in Terraform AWS provider related to arguments of aws_instance:
88-
# (eg, https://github.com/terraform-providers/terraform-provider-aws/issues/2036)
89-
# we have to ignore changes in the following arguments
90-
ignore_changes = [
91-
root_block_device,
92-
ebs_block_device,
93-
]
94-
}
95-
}
96-
97-
resource "aws_instance" "this_t2" {
98-
count = local.t_instance_count > 0 ? local.t_instance_count : 0
99-
100-
ami = var.ami
101-
instance_type = var.instance_type
102-
user_data = var.user_data
103-
subnet_id = element(
104-
distinct(compact(concat([var.subnet_id], var.subnet_ids))),
105-
count.index,
106-
)
107-
key_name = var.key_name
108-
monitoring = var.monitoring
109-
get_password_data = var.get_password_data
110-
vpc_security_group_ids = var.vpc_security_group_ids
111-
iam_instance_profile = var.iam_instance_profile
112-
113-
associate_public_ip_address = var.associate_public_ip_address
114-
private_ip = length(var.private_ips) > 0 ? element(var.private_ips, count.index) : var.private_ip
115-
ipv6_address_count = var.ipv6_address_count
116-
ipv6_addresses = var.ipv6_addresses
117-
118-
ebs_optimized = var.ebs_optimized
119-
120-
dynamic "root_block_device" {
121-
for_each = var.root_block_device
122-
content {
123-
delete_on_termination = lookup(root_block_device.value, "delete_on_termination", null)
124-
iops = lookup(root_block_device.value, "iops", null)
125-
volume_size = lookup(root_block_device.value, "volume_size", null)
126-
volume_type = lookup(root_block_device.value, "volume_type", null)
127-
}
128-
}
129-
130-
dynamic "ebs_block_device" {
131-
for_each = var.ebs_block_device
132-
content {
133-
delete_on_termination = lookup(ebs_block_device.value, "delete_on_termination", null)
134-
device_name = ebs_block_device.value.device_name
135-
encrypted = lookup(ebs_block_device.value, "encrypted", null)
136-
iops = lookup(ebs_block_device.value, "iops", null)
137-
snapshot_id = lookup(ebs_block_device.value, "snapshot_id", null)
138-
volume_size = lookup(ebs_block_device.value, "volume_size", null)
139-
volume_type = lookup(ebs_block_device.value, "volume_type", null)
140-
}
141-
}
142-
143-
dynamic "ephemeral_block_device" {
144-
for_each = var.ephemeral_block_device
145-
content {
146-
device_name = ephemeral_block_device.value.device_name
147-
no_device = lookup(ephemeral_block_device.value, "no_device", null)
148-
virtual_name = lookup(ephemeral_block_device.value, "virtual_name", null)
149-
}
150-
}
151-
152-
source_dest_check = var.source_dest_check
153-
disable_api_termination = var.disable_api_termination
154-
instance_initiated_shutdown_behavior = var.instance_initiated_shutdown_behavior
155-
placement_group = var.placement_group
156-
tenancy = var.tenancy
157-
15883
credit_specification {
159-
cpu_credits = var.cpu_credits
84+
cpu_credits = local.is_t_instance_type?var.cpu_credits:null
16085
}
16186

162-
tags = merge(
163-
{
164-
"Name" = var.instance_count > 1 || var.use_num_suffix ? format("%s-%d", var.name, count.index + 1) : var.name
165-
},
166-
var.tags,
167-
)
168-
169-
volume_tags = merge(
170-
{
171-
"Name" = var.instance_count > 1 || var.use_num_suffix ? format("%s-%d", var.name, count.index + 1) : var.name
172-
},
173-
var.volume_tags,
174-
)
175-
17687
lifecycle {
17788
# Due to several known issues in Terraform AWS provider related to arguments of aws_instance:
17889
# (eg, https://github.com/terraform-providers/terraform-provider-aws/issues/2036)
@@ -183,4 +94,3 @@ resource "aws_instance" "this_t2" {
18394
]
18495
}
18596
}
186-

‎outputs.tf‎

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
locals {
2-
this_id = compact(coalescelist(aws_instance.this.*.id, aws_instance.this_t2.*.id, [""]))
3-
this_availability_zone = compact(coalescelist(aws_instance.this.*.availability_zone, aws_instance.this_t2.*.availability_zone, [""]))
4-
this_key_name = compact(coalescelist(aws_instance.this.*.key_name, aws_instance.this_t2.*.key_name, [""]))
5-
this_public_dns = compact(coalescelist(aws_instance.this.*.public_dns, aws_instance.this_t2.*.public_dns, [""]))
6-
this_public_ip = compact(coalescelist(aws_instance.this.*.public_ip, aws_instance.this_t2.*.public_ip, [""]))
7-
this_primary_network_interface_id = compact(coalescelist(aws_instance.this.*.primary_network_interface_id, aws_instance.this_t2.*.primary_network_interface_id, [""]))
8-
this_private_dns = compact(coalescelist(aws_instance.this.*.private_dns, aws_instance.this_t2.*.private_dns, [""]))
9-
this_private_ip = compact(coalescelist(aws_instance.this.*.private_ip, aws_instance.this_t2.*.private_ip, [""]))
10-
this_placement_group = compact(coalescelist(aws_instance.this.*.placement_group, aws_instance.this_t2.*.placement_group, [""]))
11-
this_security_groups = coalescelist(aws_instance.this.*.security_groups, aws_instance.this_t2.*.security_groups, [""])
12-
this_vpc_security_group_ids = coalescelist(flatten(aws_instance.this.*.vpc_security_group_ids), flatten(aws_instance.this_t2.*.vpc_security_group_ids), [""])
13-
this_subnet_id = compact(coalescelist(aws_instance.this.*.subnet_id, aws_instance.this_t2.*.subnet_id, [""]))
14-
this_credit_specification = flatten(aws_instance.this_t2.*.credit_specification)
15-
this_tags = coalescelist(aws_instance.this.*.tags, aws_instance.this_t2.*.tags, [""])
16-
this_volume_tags = coalescelist(aws_instance.this.*.volume_tags, aws_instance.this_t2.*.volume_tags, [""])
17-
this_password_data = coalescelist(aws_instance.this.*.password_data, aws_instance.this_t2.*.password_data, [""])
2+
this_id = compact(coalescelist(aws_instance.this.*.id, [""]))
3+
this_availability_zone = compact(coalescelist(aws_instance.this.*.availability_zone, [""]))
4+
this_key_name = compact(coalescelist(aws_instance.this.*.key_name, [""]))
5+
this_public_dns = compact(coalescelist(aws_instance.this.*.public_dns, [""]))
6+
this_public_ip = compact(coalescelist(aws_instance.this.*.public_ip, [""]))
7+
this_primary_network_interface_id = compact(coalescelist(aws_instance.this.*.primary_network_interface_id, [""]))
8+
this_private_dns = compact(coalescelist(aws_instance.this.*.private_dns, [""]))
9+
this_private_ip = compact(coalescelist(aws_instance.this.*.private_ip, [""]))
10+
this_placement_group = compact(coalescelist(aws_instance.this.*.placement_group, [""]))
11+
this_security_groups = coalescelist(aws_instance.this.*.security_groups, [""])
12+
this_vpc_security_group_ids = coalescelist(flatten(aws_instance.this.*.vpc_security_group_ids), [""])
13+
this_subnet_id = compact(coalescelist(aws_instance.this.*.subnet_id, [""]))
14+
this_credit_specification = flatten(aws_instance.this.*.credit_specification)
15+
this_tags = coalescelist(aws_instance.this.*.tags, [""])
16+
this_volume_tags = coalescelist(aws_instance.this.*.volume_tags, [""])
17+
this_password_data = coalescelist(aws_instance.this.*.password_data, [""])
1818
}
1919

2020
output "id" {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /