Skip to content

Commit 8337002

Browse files
committed
Compute set of all instance tags in module.design
Use the set of tags in network and aws to avoid creating a placement group when not required to.
1 parent 77855c9 commit 8337002

File tree

5 files changed

+9
-10
lines changed

5 files changed

+9
-10
lines changed

aws/infrastructure.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ locals {
6767
}
6868

6969
resource "aws_placement_group" "efa_group" {
70+
count = contains(module.design.all_instance_tags, "efa") ? 1 : 0
7071
name = "${var.cluster_name}-efa-placement_group"
7172
strategy = "cluster"
7273
}
@@ -87,7 +88,7 @@ resource "aws_instance" "instances" {
8788
ami = lookup(each.value, "image", var.image)
8889
user_data = base64gzip(module.configuration.user_data[each.key])
8990
availability_zone = local.availability_zone
90-
placement_group = contains(each.value.tags, "efa") ? aws_placement_group.efa_group.id : null
91+
placement_group = contains(each.value.tags, "efa") ? aws_placement_group.efa_group[0].id : null
9192

9293
key_name = aws_key_pair.key.key_name
9394

aws/network.tf

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ resource "aws_security_group" "allow_out_any" {
4848
}
4949

5050
locals {
51-
all_tags = toset(flatten([ for key, value in module.design.instances: value.tags ]))
52-
sec_groups = toset([ for name, rule in var.firewall_rules: rule.tag if contains(local.all_tags, rule.tag) ])
51+
sec_groups = toset([ for name, rule in var.firewall_rules: rule.tag if contains(module.design.all_instance_tags, rule.tag) ])
5352
}
5453

5554
resource "aws_security_group" "external" {

common/design/outputs.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,7 @@ output "domain_name" {
2121
output "bastion_tag" {
2222
value = local.bastion_tag
2323
}
24+
25+
output "all_instance_tags" {
26+
value = toset(flatten([for instance in local.instances: instance.tags]))
27+
}

gcp/network.tf

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,8 @@ resource "google_compute_firewall" "allow_all_internal" {
4646

4747
}
4848

49-
locals {
50-
all_tags = toset(flatten([ for key, value in module.design.instances: value.tags ]))
51-
}
52-
5349
resource "google_compute_firewall" "default" {
54-
for_each = { for name, rule in var.firewall_rules: name => rule if contains(local.all_tags, rule.tag) }
50+
for_each = { for name, rule in var.firewall_rules: name => rule if contains(module.design.all_instance_tags, rule.tag) }
5551
name = format("%s-%s", var.cluster_name, lower(each.key))
5652
network = google_compute_network.network.self_link
5753

openstack/network-2.tf

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ resource openstack_networking_secgroup_rule_v2 "udp" {
3131
}
3232

3333
locals {
34-
all_tags = toset(flatten([ for key, value in module.design.instances: value.tags ]))
35-
sec_groups = toset([ for name, rule in var.firewall_rules: rule.tag if contains(local.all_tags, rule.tag) ])
34+
sec_groups = toset([ for name, rule in var.firewall_rules: rule.tag if contains(module.design.all_instance_tags, rule.tag) ])
3635
}
3736

3837
resource "openstack_networking_secgroup_v2" "external" {

0 commit comments

Comments
 (0)