Skip to content

Commit 18af306

Browse files
feat: expose DNS options in the vpc variable of the root level module (#795)
1 parent 1851e1b commit 18af306

File tree

3 files changed

+46
-7
lines changed

3 files changed

+46
-7
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,7 @@ module "cluster_pattern" {
930930
| <a name="input_transit_gateway_resource_group"></a> [transit\_gateway\_resource\_group](#input\_transit\_gateway\_resource\_group) | Name of resource group to use for transit gateway. Must be included in `var.resource_group` | `string` | n/a | yes |
931931
| <a name="input_virtual_private_endpoints"></a> [virtual\_private\_endpoints](#input\_virtual\_private\_endpoints) | Object describing VPE to be created | <pre>list(<br> object({<br> service_name = string<br> service_type = string<br> resource_group = optional(string)<br> access_tags = optional(list(string), [])<br> vpcs = list(<br> object({<br> name = string<br> subnets = list(string)<br> security_group_name = optional(string)<br> })<br> )<br> })<br> )</pre> | n/a | yes |
932932
| <a name="input_vpc_placement_groups"></a> [vpc\_placement\_groups](#input\_vpc\_placement\_groups) | List of VPC placement groups to create | <pre>list(<br> object({<br> access_tags = optional(list(string), [])<br> name = string<br> resource_group = optional(string)<br> strategy = string<br> })<br> )</pre> | `[]` | no |
933-
| <a name="input_vpcs"></a> [vpcs](#input\_vpcs) | A map describing VPCs to be created in this repo. | <pre>list(<br> object({<br> prefix = string # VPC prefix<br> existing_vpc_id = optional(string)<br> existing_subnets = optional(<br> list(<br> object({<br> id = string<br> public_gateway = optional(bool, false)<br> })<br> )<br> )<br> resource_group = optional(string) # Name of the group where VPC will be created<br> access_tags = optional(list(string), [])<br> classic_access = optional(bool)<br> default_network_acl_name = optional(string)<br> default_security_group_name = optional(string)<br> clean_default_sg_acl = optional(bool, false)<br> default_security_group_rules = optional(<br> list(<br> object({<br> name = string<br> direction = string<br> remote = string<br> tcp = optional(<br> object({<br> port_max = optional(number)<br> port_min = optional(number)<br> })<br> )<br> udp = optional(<br> object({<br> port_max = optional(number)<br> port_min = optional(number)<br> })<br> )<br> icmp = optional(<br> object({<br> type = optional(number)<br> code = optional(number)<br> })<br> )<br> })<br> )<br> )<br> default_routing_table_name = optional(string)<br> flow_logs_bucket_name = optional(string)<br> address_prefixes = optional(<br> object({<br> zone-1 = optional(list(string))<br> zone-2 = optional(list(string))<br> zone-3 = optional(list(string))<br> })<br> )<br> network_acls = list(<br> object({<br> name = string<br> add_ibm_cloud_internal_rules = optional(bool)<br> add_vpc_connectivity_rules = optional(bool)<br> prepend_ibm_rules = optional(bool)<br> rules = list(<br> object({<br> name = string<br> action = string<br> destination = string<br> direction = string<br> source = string<br> tcp = optional(<br> object({<br> port_max = optional(number)<br> port_min = optional(number)<br> source_port_max = optional(number)<br> source_port_min = optional(number)<br> })<br> )<br> udp = optional(<br> object({<br> port_max = optional(number)<br> port_min = optional(number)<br> source_port_max = optional(number)<br> source_port_min = optional(number)<br> })<br> )<br> icmp = optional(<br> object({<br> type = optional(number)<br> code = optional(number)<br> })<br> )<br> })<br> )<br> })<br> )<br> use_public_gateways = object({<br> zone-1 = optional(bool)<br> zone-2 = optional(bool)<br> zone-3 = optional(bool)<br> })<br> subnets = optional(object({<br> zone-1 = list(object({<br> name = string<br> cidr = string<br> public_gateway = optional(bool)<br> acl_name = string<br> no_addr_prefix = optional(bool, false)<br> }))<br> zone-2 = list(object({<br> name = string<br> cidr = string<br> public_gateway = optional(bool)<br> acl_name = string<br> no_addr_prefix = optional(bool, false)<br> }))<br> zone-3 = list(object({<br> name = string<br> cidr = string<br> public_gateway = optional(bool)<br> acl_name = string<br> no_addr_prefix = optional(bool, false)<br> }))<br> }))<br> })<br> )</pre> | n/a | yes |
933+
| <a name="input_vpcs"></a> [vpcs](#input\_vpcs) | A map describing VPCs to be created in this repo. | <pre>list(<br> object({<br> prefix = string # VPC prefix<br> existing_vpc_id = optional(string)<br> existing_subnets = optional(<br> list(<br> object({<br> id = string<br> public_gateway = optional(bool, false)<br> })<br> )<br> )<br> resource_group = optional(string) # Name of the group where VPC will be created<br> access_tags = optional(list(string), [])<br> classic_access = optional(bool)<br> default_network_acl_name = optional(string)<br> default_security_group_name = optional(string)<br> clean_default_sg_acl = optional(bool, false)<br> dns_binding_name = optional(string, null)<br> dns_instance_name = optional(string, null)<br> dns_custom_resolver_name = optional(string, null)<br> dns_location = optional(string, "global")<br> dns_plan = optional(string, "standard-dns")<br> existing_dns_instance_id = optional(string, null)<br> use_existing_dns_instance = optional(bool, false)<br> enable_hub = optional(bool, false)<br> skip_spoke_auth_policy = optional(bool, false)<br> hub_account_id = optional(string, null)<br> enable_hub_vpc_id = optional(bool, false)<br> hub_vpc_id = optional(string, null)<br> enable_hub_vpc_crn = optional(bool, false)<br> hub_vpc_crn = optional(string, null)<br> update_delegated_resolver = optional(bool, false)<br> skip_custom_resolver_hub_creation = optional(bool, false)<br> resolver_type = optional(string, null)<br> manual_servers = optional(list(object({<br> address = string<br> zone_affinity = optional(string)<br> })), [])<br> default_security_group_rules = optional(<br> list(<br> object({<br> name = string<br> direction = string<br> remote = string<br> tcp = optional(<br> object({<br> port_max = optional(number)<br> port_min = optional(number)<br> })<br> )<br> udp = optional(<br> object({<br> port_max = optional(number)<br> port_min = optional(number)<br> })<br> )<br> icmp = optional(<br> object({<br> type = optional(number)<br> code = optional(number)<br> })<br> )<br> })<br> )<br> )<br> default_routing_table_name = optional(string)<br> flow_logs_bucket_name = optional(string)<br> address_prefixes = optional(<br> object({<br> zone-1 = optional(list(string))<br> zone-2 = optional(list(string))<br> zone-3 = optional(list(string))<br> })<br> )<br> network_acls = list(<br> object({<br> name = string<br> add_ibm_cloud_internal_rules = optional(bool)<br> add_vpc_connectivity_rules = optional(bool)<br> prepend_ibm_rules = optional(bool)<br> rules = list(<br> object({<br> name = string<br> action = string<br> destination = string<br> direction = string<br> source = string<br> tcp = optional(<br> object({<br> port_max = optional(number)<br> port_min = optional(number)<br> source_port_max = optional(number)<br> source_port_min = optional(number)<br> })<br> )<br> udp = optional(<br> object({<br> port_max = optional(number)<br> port_min = optional(number)<br> source_port_max = optional(number)<br> source_port_min = optional(number)<br> })<br> )<br> icmp = optional(<br> object({<br> type = optional(number)<br> code = optional(number)<br> })<br> )<br> })<br> )<br> })<br> )<br> use_public_gateways = object({<br> zone-1 = optional(bool)<br> zone-2 = optional(bool)<br> zone-3 = optional(bool)<br> })<br> subnets = optional(object({<br> zone-1 = list(object({<br> name = string<br> cidr = string<br> public_gateway = optional(bool)<br> acl_name = string<br> no_addr_prefix = optional(bool, false)<br> }))<br> zone-2 = list(object({<br> name = string<br> cidr = string<br> public_gateway = optional(bool)<br> acl_name = string<br> no_addr_prefix = optional(bool, false)<br> }))<br> zone-3 = list(object({<br> name = string<br> cidr = string<br> public_gateway = optional(bool)<br> acl_name = string<br> no_addr_prefix = optional(bool, false)<br> }))<br> }))<br> })<br> )</pre> | n/a | yes |
934934
| <a name="input_vpn_gateways"></a> [vpn\_gateways](#input\_vpn\_gateways) | List of VPN Gateways to create. | <pre>list(<br> object({<br> name = string<br> vpc_name = string<br> subnet_name = string # Do not include prefix, use same name as in `var.subnets`<br> mode = optional(string)<br> resource_group = optional(string)<br> access_tags = optional(list(string), [])<br> })<br> )</pre> | n/a | yes |
935935
| <a name="input_vsi"></a> [vsi](#input\_vsi) | A list describing VSI workloads to create | <pre>list(<br> object({<br> name = string<br> vpc_name = string<br> subnet_names = list(string)<br> ssh_keys = list(string)<br> image_name = string<br> machine_type = string<br> vsi_per_subnet = number<br> user_data = optional(string)<br> resource_group = optional(string)<br> enable_floating_ip = optional(bool)<br> security_groups = optional(list(string))<br> boot_volume_encryption_key_name = optional(string)<br> access_tags = optional(list(string), [])<br> security_group = optional(<br> object({<br> name = string<br> rules = list(<br> object({<br> name = string<br> direction = string<br> source = string<br> tcp = optional(<br> object({<br> port_max = number<br> port_min = number<br> })<br> )<br> udp = optional(<br> object({<br> port_max = number<br> port_min = number<br> })<br> )<br> icmp = optional(<br> object({<br> type = number<br> code = number<br> })<br> )<br> })<br> )<br> })<br> )<br> block_storage_volumes = optional(list(<br> object({<br> name = string<br> profile = string<br> capacity = optional(number)<br> iops = optional(number)<br> encryption_key = optional(string)<br> })<br> ))<br> load_balancers = optional(list(<br> object({<br> name = string<br> type = string<br> listener_port = number<br> listener_protocol = string<br> connection_limit = number<br> algorithm = string<br> protocol = string<br> health_delay = number<br> health_retries = number<br> health_timeout = number<br> health_type = string<br> pool_member_port = string<br> idle_connection_timeout = optional(number)<br> security_group = optional(<br> object({<br> name = string<br> rules = list(<br> object({<br> name = string<br> direction = string<br> source = string<br> tcp = optional(<br> object({<br> port_max = number<br> port_min = number<br> })<br> )<br> udp = optional(<br> object({<br> port_max = number<br> port_min = number<br> })<br> )<br> icmp = optional(<br> object({<br> type = number<br> code = number<br> })<br> )<br> })<br> )<br> })<br> )<br> })<br> ))<br> })<br> )</pre> | n/a | yes |
936936
| <a name="input_wait_till"></a> [wait\_till](#input\_wait\_till) | To avoid long wait times when you run your Terraform code, you can specify the stage when you want Terraform to mark the cluster resource creation as completed. Depending on what stage you choose, the cluster creation might not be fully completed and continues to run in the background. However, your Terraform code can continue to run without waiting for the cluster to be fully created. Supported args are `MasterNodeReady`, `OneWorkerNodeReady`, and `IngressReady` | `string` | `"IngressReady"` | no |

main.tf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,24 @@ module "vpc" {
6060
create_authorization_policy_vpc_to_cos = false
6161
existing_storage_bucket_name = (each.value.flow_logs_bucket_name != null) ? ibm_cos_bucket.buckets[each.value.flow_logs_bucket_name].bucket_name : null
6262
clean_default_sg_acl = (each.value.clean_default_sg_acl == null) ? false : each.value.clean_default_sg_acl
63+
dns_binding_name = each.value.dns_binding_name
64+
dns_instance_name = each.value.dns_instance_name
65+
dns_custom_resolver_name = each.value.dns_custom_resolver_name
66+
dns_location = each.value.dns_location
67+
dns_plan = each.value.dns_plan
68+
existing_dns_instance_id = each.value.existing_dns_instance_id
69+
use_existing_dns_instance = each.value.use_existing_dns_instance
70+
enable_hub = each.value.enable_hub
71+
skip_spoke_auth_policy = each.value.skip_spoke_auth_policy
72+
hub_account_id = each.value.hub_account_id
73+
enable_hub_vpc_id = each.value.enable_hub_vpc_id
74+
hub_vpc_id = each.value.hub_vpc_id
75+
enable_hub_vpc_crn = each.value.enable_hub_vpc_crn
76+
hub_vpc_crn = each.value.hub_vpc_crn
77+
update_delegated_resolver = each.value.update_delegated_resolver
78+
skip_custom_resolver_hub_creation = each.value.skip_custom_resolver_hub_creation
79+
resolver_type = each.value.resolver_type
80+
manual_servers = each.value.manual_servers
6381
}
6482

6583

variables.tf

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,33 @@ variable "vpcs" {
7373
})
7474
)
7575
)
76-
resource_group = optional(string) # Name of the group where VPC will be created
77-
access_tags = optional(list(string), [])
78-
classic_access = optional(bool)
79-
default_network_acl_name = optional(string)
80-
default_security_group_name = optional(string)
81-
clean_default_sg_acl = optional(bool, false)
76+
resource_group = optional(string) # Name of the group where VPC will be created
77+
access_tags = optional(list(string), [])
78+
classic_access = optional(bool)
79+
default_network_acl_name = optional(string)
80+
default_security_group_name = optional(string)
81+
clean_default_sg_acl = optional(bool, false)
82+
dns_binding_name = optional(string, null)
83+
dns_instance_name = optional(string, null)
84+
dns_custom_resolver_name = optional(string, null)
85+
dns_location = optional(string, "global")
86+
dns_plan = optional(string, "standard-dns")
87+
existing_dns_instance_id = optional(string, null)
88+
use_existing_dns_instance = optional(bool, false)
89+
enable_hub = optional(bool, false)
90+
skip_spoke_auth_policy = optional(bool, false)
91+
hub_account_id = optional(string, null)
92+
enable_hub_vpc_id = optional(bool, false)
93+
hub_vpc_id = optional(string, null)
94+
enable_hub_vpc_crn = optional(bool, false)
95+
hub_vpc_crn = optional(string, null)
96+
update_delegated_resolver = optional(bool, false)
97+
skip_custom_resolver_hub_creation = optional(bool, false)
98+
resolver_type = optional(string, null)
99+
manual_servers = optional(list(object({
100+
address = string
101+
zone_affinity = optional(string)
102+
})), [])
82103
default_security_group_rules = optional(
83104
list(
84105
object({

0 commit comments

Comments
 (0)