Skip to content

Commit

Permalink
fix: simplify default security group lookup (#561)
Browse files Browse the repository at this point in the history
  • Loading branch information
shemau committed Oct 13, 2023
1 parent f6b6e5a commit dff14e5
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 36 deletions.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,6 @@ No modules.
| [ibm_is_volume.volume](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/is_volume) | resource |
| [time_sleep.wait_for_authorization_policy](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep) | resource |
| [ibm_is_vpc.vpc](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/is_vpc) | data source |
| [ibm_is_vpcs.vpcs](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/is_vpcs) | data source |

### Inputs

Expand Down
21 changes: 4 additions & 17 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -69,19 +69,8 @@ resource "time_sleep" "wait_for_authorization_policy" {
# Lookup default security group id in the vpc
##############################################################################

data "ibm_is_vpcs" "vpcs" {
depends_on = [
var.vpc_id
]
}

data "ibm_is_vpc" "vpc" {
name = local.vpc_by_id[var.vpc_id].name
}

locals {
vpc_by_id = { for vpc in data.ibm_is_vpcs.vpcs.vpcs : vpc.id => vpc }
default_security_group_id = data.ibm_is_vpc.vpc.default_security_group
identifier = var.vpc_id
}

##############################################################################
Expand Down Expand Up @@ -124,7 +113,7 @@ resource "ibm_is_instance" "vsi" {
security_groups = flatten([
(var.create_security_group ? [ibm_is_security_group.security_group[var.security_group.name].id] : []),
var.security_group_ids,
(var.create_security_group == false && length(var.security_group_ids) == 0 ? [local.default_security_group_id] : []),
(var.create_security_group == false && length(var.security_group_ids) == 0 ? [data.ibm_is_vpc.vpc.default_security_group] : []),
])
allow_ip_spoofing = var.allow_ip_spoofing
}
Expand All @@ -136,15 +125,15 @@ resource "ibm_is_instance" "vsi" {
}
content {
subnet = network_interfaces.value.id
# If security_groups is empty(list is len(0)) then default list to default_security_group_id.
# If security_groups is empty(list is len(0)) then default list to data.ibm_is_vpc.vpc.default_security_group.
# If list is empty it will fail on reapply as when vsi is passed an empty security group list it will attach the default security group.
security_groups = length(flatten([
(var.create_security_group && var.secondary_use_vsi_security_group ? [ibm_is_security_group.security_group[var.security_group.name].id] : []),
[
for group in var.secondary_security_groups :
group.security_group_id if group.interface_name == network_interfaces.value.name
]
])) == 0 ? [local.default_security_group_id] : flatten([
])) == 0 ? [data.ibm_is_vpc.vpc.default_security_group] : flatten([
(var.create_security_group && var.secondary_use_vsi_security_group ? [ibm_is_security_group.security_group[var.security_group.name].id] : []),
[
for group in var.secondary_security_groups :
Expand All @@ -163,8 +152,6 @@ resource "ibm_is_instance" "vsi" {
volumes = length(var.block_storage_volumes) == 0 ? [] : local.volume_by_vsi[each.key]
}



##############################################################################


Expand Down
24 changes: 6 additions & 18 deletions module-metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@
"description": "ID of VPC",
"required": true,
"source": [
"data.ibm_is_vpcs.vpcs.depends_on",
"data.ibm_is_vpc.vpc.identifier",
"ibm_is_instance.vsi.vpc",
"ibm_is_security_group.security_group.vpc"
],
Expand Down Expand Up @@ -451,7 +451,7 @@
},
"pos": {
"filename": "main.tf",
"line": 94
"line": 83
}
},
"ibm_is_floating_ip.secondary_fip": {
Expand All @@ -468,7 +468,7 @@
},
"pos": {
"filename": "main.tf",
"line": 183
"line": 170
}
},
"ibm_is_floating_ip.vsi_fip": {
Expand All @@ -485,7 +485,7 @@
},
"pos": {
"filename": "main.tf",
"line": 175
"line": 162
}
},
"ibm_is_instance.vsi": {
Expand All @@ -509,7 +509,7 @@
},
"pos": {
"filename": "main.tf",
"line": 103
"line": 92
}
},
"ibm_is_lb.lb": {
Expand Down Expand Up @@ -634,20 +634,8 @@
"mode": "data",
"type": "ibm_is_vpc",
"name": "vpc",
"provider": {
"name": "ibm"
},
"pos": {
"filename": "main.tf",
"line": 78
}
},
"data.ibm_is_vpcs.vpcs": {
"mode": "data",
"type": "ibm_is_vpcs",
"name": "vpcs",
"attributes": {
"depends_on": "vpc_id"
"identifier": "vpc_id"
},
"provider": {
"name": "ibm"
Expand Down

0 comments on commit dff14e5

Please sign in to comment.