You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
firewall_next_hop_ip=var.connectivity!=null&& var.connectivity.firewall!=null? module.connectivity[0].firewall_next_hop_ip:null# if firewall is enabled, pass the next hop IP to the landing zones for route configuration
firewall_next_hop_ip=var.connectivity!=null&& var.connectivity.firewall!=null? module.connectivity[0].firewall_next_hop_ip:null# if firewall is enabled, pass the next hop IP to the landing zones for route configuration
Copy file name to clipboardExpand all lines: src/modules/connectivity/README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,12 +51,13 @@ No modules.
51
51
| <aname="input_firewall"></a> [firewall](#input\_firewall)| Firewall configuration. Set to null to skip firewall deployment (network area and routing are still created). lan\_network\_range and wan\_network\_range must be CIDRs within the network area range. lan\_ip and wan\_ip are optional; when omitted, the 5th address of the respective prefix is used (STACKIT reserves the first usable address as the gateway). | <pre>object({<br/> zone = string<br/> flavor = string<br/> name = string<br/> volume_performance_class = optional(string, "storage_premium_perf4")<br/> volume_size = optional(number, 16)<br/> lan_network_range = string<br/> wan_network_range = string<br/> lan_ip = optional(string, null)<br/> wan_ip = optional(string, null)<br/> })</pre> |`null`| no |
52
52
| <aname="input_labels"></a> [labels](#input\_labels)| Additional labels to apply to all resources. |`map(string)`|`{}`| no |
53
53
| <aname="input_naming_pattern"></a> [naming\_pattern](#input\_naming\_pattern)| Naming prefix for all resources in this module, e.g. "myco-pltfm-hub-prod". |`string`| n/a | yes |
54
-
| <aname="input_network_area"></a> [network\_area](#input\_network\_area)| Network area configuration including IP ranges, transfer network, and prefix length settings. | <pre>object({<br/> ranges = list(string)<br/> transfer_network = string<br/> min_prefix_length = optional(number, 24)<br/> max_prefix_length = optional(number, 28)<br/> default_prefix_length = optional(number, 28)<br/> default_nameservers = optional(list(string), ["1.0.0.1", "1.1.1.1"])<br/> })</pre> | n/a | yes |
54
+
| <aname="input_network_area"></a> [network\_area](#input\_network\_area)| Network area configuration including IP ranges, transfer network, and prefix length settings. default\_nameservers falls back to the STACKIT resolvers of var.region when unset. | <pre>object({<br/> ranges = list(string)<br/> transfer_network = string<br/> min_prefix_length = optional(number, 24)<br/> max_prefix_length = optional(number, 28)<br/> default_prefix_length = optional(number, 28)<br/> default_nameservers = optional(list(string), null)<br/> })</pre> | n/a | yes |
55
55
| <aname="input_network_area_name"></a> [network\_area\_name](#input\_network\_area\_name)| Name of the network area to create for this region. |`string`|`null`| no |
56
56
| <aname="input_organization_id"></a> [organization\_id](#input\_organization\_id)| Organization ID, required for network area and route configuration. |`string`| n/a | yes |
57
57
| <aname="input_owner_email"></a> [owner\_email](#input\_owner\_email)| Email address of the owner for the project. Required for STACKIT resource manager. |`string`| n/a | yes |
58
58
| <aname="input_parent_container_id"></a> [parent\_container\_id](#input\_parent\_container\_id)| Parent container ID (folder or organization) where the project will be created. |`string`| n/a | yes |
59
59
| <aname="input_project_name"></a> [project\_name](#input\_project\_name)| Name of the STACKIT project to create. Falls back to naming\_pattern if not set. |`string`|`null`| no |
60
+
| <aname="input_region"></a> [region](#input\_region)| STACKIT region the network area region is created in. Also selects the default resolvers when network\_area.default\_nameservers is unset. |`string`|`"eu01"`| no |
60
61
| <aname="input_role_assignments"></a> [role\_assignments](#input\_role\_assignments)| List of role assignments for the project. Subject can be a user email or service account email. | <pre>list(object({<br/> role = string<br/> subject = string<br/> }))</pre> |`[]`| no |
61
62
| <a name="input_vpn"></a> [vpn](#input\_vpn) | IPsec VPN gateway for the hub, attached to the network area through the connectivity project. Set to null to skip. The gateway is HA: it terminates two tunnels in separate availability zones, each with its own public IP. Connections are created in a second apply once the remote peer addresses are known. Supports POLICY\_BASED and ROUTE\_BASED routing. | <pre>object({<br/> display_name = optional(string, null)<br/> plan_id = optional(string, "p100")<br/> routing_type = optional(string, "ROUTE_BASED")<br/> availability_zones = object({<br/> tunnel1 = string<br/> tunnel2 = string<br/> })<br/> connections = optional(map(object({<br/> display_name = optional(string, null)<br/> enabled = optional(bool, true)<br/> local_subnets = optional(list(string), null)<br/> remote_subnets = optional(list(string), null)<br/> static_routes = optional(list(string), null)<br/> tunnel1 = object({<br/> remote_address = string<br/> peering = optional(object({<br/> local_address = string<br/> remote_address = string<br/> }), null)<br/> phase1 = optional(object({<br/> encryption_algorithms = optional(list(string), ["aes256"])<br/> integrity_algorithms = optional(list(string), ["sha2_384"])<br/> dh_groups = optional(list(string), ["ecp384"])<br/> rekey_time = optional(number, null)<br/> }), {})<br/> phase2 = optional(object({<br/> encryption_algorithms = optional(list(string), ["aes256"])<br/> integrity_algorithms = optional(list(string), ["sha2_384"])<br/> dh_groups = optional(list(string), ["ecp384"])<br/> rekey_time = optional(number, null)<br/> dpd_action = optional(string, null)<br/> start_action = optional(string, null)<br/> }), {})<br/> })<br/> tunnel2 = object({<br/> remote_address = string<br/> peering = optional(object({<br/> local_address = string<br/> remote_address = string<br/> }), null)<br/> phase1 = optional(object({<br/> encryption_algorithms = optional(list(string), ["aes256"])<br/> integrity_algorithms = optional(list(string), ["sha2_384"])<br/> dh_groups = optional(list(string), ["ecp384"])<br/> rekey_time = optional(number, null)<br/> }), {})<br/> phase2 = optional(object({<br/> encryption_algorithms = optional(list(string), ["aes256"])<br/> integrity_algorithms = optional(list(string), ["sha2_384"])<br/> dh_groups = optional(list(string), ["ecp384"])<br/> rekey_time = optional(number, null)<br/> dpd_action = optional(string, null)<br/> start_action = optional(string, null)<br/> }), {})<br/> })<br/> })), {})<br/> })</pre> | `null` | no |
62
63
| <aname="input_vpn_pre_shared_keys"></a> [vpn\_pre\_shared\_keys](#input\_vpn\_pre\_shared\_keys)| Pre-shared keys per VPN connection key, one per tunnel. Kept separate from var.vpn so the connection topology stays committable; supply through TF\_VAR\_vpn\_pre\_shared\_keys or a gitignored tfvars file. Minimum 20 characters. | <pre>map(object({<br/> tunnel1 = string<br/> tunnel2 = string<br/> }))</pre> |`{}`| no |
@@ -70,6 +71,7 @@ No modules.
70
71
| <aname="output_firewall_next_hop_ip"></a> [firewall\_next\_hop\_ip](#output\_firewall\_next\_hop\_ip)| The IP address to be used as next hop for the default route in the landing zones (firewall LAN IP). |
71
72
| <aname="output_firewall_public_ip"></a> [firewall\_public\_ip](#output\_firewall\_public\_ip)| The public IP address of the firewall WAN interface. |
72
73
| <aname="output_network_area_id"></a> [network\_area\_id](#output\_network\_area\_id)| The ID of the created network area. |
74
+
| <aname="output_network_area_nameservers"></a> [network\_area\_nameservers](#output\_network\_area\_nameservers)| Resolvers configured as the network area default, either from network\_area.default\_nameservers or the STACKIT resolvers of the region. |
73
75
| <aname="output_project_container_id"></a> [project\_container\_id](#output\_project\_container\_id)| The container ID of the created STACKIT project. |
74
76
| <aname="output_project_id"></a> [project\_id](#output\_project\_id)| The project ID of the created STACKIT project. |
75
77
| <aname="output_project_name"></a> [project\_name](#output\_project\_name)| The name of the created STACKIT project. |
description="Network area configuration including IP ranges, transfer network, and prefix length settings."
56
+
description="Network area configuration including IP ranges, transfer network, and prefix length settings. default_nameservers falls back to the STACKIT resolvers of var.region when unset."
57
57
}
58
58
59
59
variable"network_area_name" {
@@ -83,6 +83,12 @@ variable "project_name" {
83
83
default=null
84
84
}
85
85
86
+
variable"region" {
87
+
type=string
88
+
description="STACKIT region the network area region is created in. Also selects the default resolvers when network_area.default_nameservers is unset."
Copy file name to clipboardExpand all lines: src/modules/landing-zone/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,7 @@ No modules.
47
47
| <aname="input_custom_roles"></a> [custom\_roles](#input\_custom\_roles)| List of custom roles to create for the project. | <pre>list(object({<br/> name = string<br/> description = string<br/> permissions = list(string)<br/> }))</pre> | n/a | yes |
48
48
| <aname="input_dns_zone_name"></a> [dns\_zone\_name](#input\_dns\_zone\_name)| Full DNS zone domain name for this landing zone. Set to null to skip DNS zone creation. |`string`|`null`| no |
49
49
| <aname="input_firewall_next_hop_ip"></a> [firewall\_next\_hop\_ip](#input\_firewall\_next\_hop\_ip)| IP address of the firewall next hop. |`string`|`null`| no |
50
-
| <aname="input_ipv4_nameservers"></a> [ipv4\_nameservers](#input\_ipv4\_nameservers)| List of IPv4 nameservers for the network. |`list(string)`|`null`| no |
50
+
| <aname="input_ipv4_nameservers"></a> [ipv4\_nameservers](#input\_ipv4\_nameservers)| List of IPv4 nameservers for the network. Null takes the network area defaults on creation and leaves an existing network untouched. |`list(string)`|`null`| no |
51
51
| <aname="input_labels"></a> [labels](#input\_labels)| Additional labels to apply to all resources. |`map(string)`|`{}`| no |
52
52
| <aname="input_naming_pattern"></a> [naming\_pattern](#input\_naming\_pattern)| Naming prefix for all resources in this module, e.g. "myco-pltfm-hub-prod". |`string`| n/a | yes |
53
53
| <aname="input_network_area_id"></a> [network\_area\_id](#input\_network\_area\_id)| Network Area ID to deploy resources into. Required if corporate is true. |`string`|`null`| no |
0 commit comments