Skip to content

Commit c8db02c

Browse files
authored
feat(TPG >=6.0)!: added iap.enabled for v6 upgrade (#453)
1 parent 6726968 commit c8db02c

File tree

49 files changed

+93
-89
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+93
-89
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ module "gce-lb-http" {
9494
| Name | Description | Type | Default | Required |
9595
|------|-------------|------|---------|:--------:|
9696
| address | Existing IPv4 address to use (the actual IP address value) | `string` | `null` | no |
97-
| backends | Map backend indices to list of backend maps. | <pre>map(object({<br> port = optional(number)<br> project = optional(string)<br> protocol = optional(string)<br> port_name = optional(string)<br> description = optional(string)<br> enable_cdn = optional(bool)<br> compression_mode = optional(string)<br> security_policy = optional(string, null)<br> edge_security_policy = optional(string, null)<br> custom_request_headers = optional(list(string))<br> custom_response_headers = optional(list(string))<br><br> timeout_sec = optional(number)<br> connection_draining_timeout_sec = optional(number)<br> session_affinity = optional(string)<br> affinity_cookie_ttl_sec = optional(number)<br> locality_lb_policy = optional(string)<br><br> health_check = optional(object({<br> host = optional(string)<br> request_path = optional(string)<br> request = optional(string)<br> response = optional(string)<br> port = optional(number)<br> port_name = optional(string)<br> proxy_header = optional(string)<br> port_specification = optional(string)<br> protocol = optional(string)<br> check_interval_sec = optional(number)<br> timeout_sec = optional(number)<br> healthy_threshold = optional(number)<br> unhealthy_threshold = optional(number)<br> logging = optional(bool)<br> }))<br><br> log_config = object({<br> enable = optional(bool)<br> sample_rate = optional(number)<br> })<br><br> groups = list(object({<br> group = string<br> description = optional(string)<br><br> balancing_mode = optional(string)<br> capacity_scaler = optional(number)<br> max_connections = optional(number)<br> max_connections_per_instance = optional(number)<br> max_connections_per_endpoint = optional(number)<br> max_rate = optional(number)<br> max_rate_per_instance = optional(number)<br> max_rate_per_endpoint = optional(number)<br> max_utilization = optional(number)<br> }))<br> iap_config = object({<br> enable = bool<br> oauth2_client_id = optional(string)<br> oauth2_client_secret = optional(string)<br> })<br> cdn_policy = optional(object({<br> cache_mode = optional(string)<br> signed_url_cache_max_age_sec = optional(string)<br> default_ttl = optional(number)<br> max_ttl = optional(number)<br> client_ttl = optional(number)<br> negative_caching = optional(bool)<br> negative_caching_policy = optional(object({<br> code = optional(number)<br> ttl = optional(number)<br> }))<br> serve_while_stale = optional(number)<br> cache_key_policy = optional(object({<br> include_host = optional(bool)<br> include_protocol = optional(bool)<br> include_query_string = optional(bool)<br> query_string_blacklist = optional(list(string))<br> query_string_whitelist = optional(list(string))<br> include_http_headers = optional(list(string))<br> include_named_cookies = optional(list(string))<br> }))<br> bypass_cache_on_request_headers = optional(list(string))<br> }))<br> outlier_detection = optional(object({<br> base_ejection_time = optional(object({<br> seconds = number<br> nanos = optional(number)<br> }))<br> consecutive_errors = optional(number)<br> consecutive_gateway_failure = optional(number)<br> enforcing_consecutive_errors = optional(number)<br> enforcing_consecutive_gateway_failure = optional(number)<br> enforcing_success_rate = optional(number)<br> interval = optional(object({<br> seconds = number<br> nanos = optional(number)<br> }))<br> max_ejection_percent = optional(number)<br> success_rate_minimum_hosts = optional(number)<br> success_rate_request_volume = optional(number)<br> success_rate_stdev_factor = optional(number)<br> }))<br> }))</pre> | n/a | yes |
97+
| backends | Map backend indices to list of backend maps. | <pre>map(object({<br> port = optional(number)<br> project = optional(string)<br> protocol = optional(string)<br> port_name = optional(string)<br> description = optional(string)<br> enable_cdn = optional(bool)<br> compression_mode = optional(string)<br> security_policy = optional(string, null)<br> edge_security_policy = optional(string, null)<br> custom_request_headers = optional(list(string))<br> custom_response_headers = optional(list(string))<br><br> timeout_sec = optional(number)<br> connection_draining_timeout_sec = optional(number)<br> session_affinity = optional(string)<br> affinity_cookie_ttl_sec = optional(number)<br> locality_lb_policy = optional(string)<br><br> health_check = optional(object({<br> host = optional(string)<br> request_path = optional(string)<br> request = optional(string)<br> response = optional(string)<br> port = optional(number)<br> port_name = optional(string)<br> proxy_header = optional(string)<br> port_specification = optional(string)<br> protocol = optional(string)<br> check_interval_sec = optional(number)<br> timeout_sec = optional(number)<br> healthy_threshold = optional(number)<br> unhealthy_threshold = optional(number)<br> logging = optional(bool)<br> }))<br><br> log_config = object({<br> enable = optional(bool)<br> sample_rate = optional(number)<br> })<br><br> groups = list(object({<br> group = string<br> description = optional(string)<br><br> balancing_mode = optional(string)<br> capacity_scaler = optional(number)<br> max_connections = optional(number)<br> max_connections_per_instance = optional(number)<br> max_connections_per_endpoint = optional(number)<br> max_rate = optional(number)<br> max_rate_per_instance = optional(number)<br> max_rate_per_endpoint = optional(number)<br> max_utilization = optional(number)<br> }))<br> iap_config = optional(object({<br> enable = bool<br> oauth2_client_id = optional(string)<br> oauth2_client_secret = optional(string)<br> }))<br> cdn_policy = optional(object({<br> cache_mode = optional(string)<br> signed_url_cache_max_age_sec = optional(string)<br> default_ttl = optional(number)<br> max_ttl = optional(number)<br> client_ttl = optional(number)<br> negative_caching = optional(bool)<br> negative_caching_policy = optional(object({<br> code = optional(number)<br> ttl = optional(number)<br> }))<br> serve_while_stale = optional(number)<br> cache_key_policy = optional(object({<br> include_host = optional(bool)<br> include_protocol = optional(bool)<br> include_query_string = optional(bool)<br> query_string_blacklist = optional(list(string))<br> query_string_whitelist = optional(list(string))<br> include_http_headers = optional(list(string))<br> include_named_cookies = optional(list(string))<br> }))<br> bypass_cache_on_request_headers = optional(list(string))<br> }))<br> outlier_detection = optional(object({<br> base_ejection_time = optional(object({<br> seconds = number<br> nanos = optional(number)<br> }))<br> consecutive_errors = optional(number)<br> consecutive_gateway_failure = optional(number)<br> enforcing_consecutive_errors = optional(number)<br> enforcing_consecutive_gateway_failure = optional(number)<br> enforcing_success_rate = optional(number)<br> interval = optional(object({<br> seconds = number<br> nanos = optional(number)<br> }))<br> max_ejection_percent = optional(number)<br> success_rate_minimum_hosts = optional(number)<br> success_rate_request_volume = optional(number)<br> success_rate_stdev_factor = optional(number)<br> }))<br> }))</pre> | n/a | yes |
9898
| certificate | Content of the SSL certificate. Requires `ssl` to be set to `true` and `create_ssl_certificate` set to `true` | `string` | `null` | no |
9999
| certificate\_map | Certificate Map ID in format projects/{project}/locations/global/certificateMaps/{name}. Identifies a certificate map associated with the given target proxy. Requires `ssl` to be set to `true` | `string` | `null` | no |
100100
| create\_address | Create a new global IPv4 address | `bool` | `true` | no |

autogen/main.tf.tmpl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,10 +257,11 @@ resource "google_compute_backend_service" "default" {
257257
}
258258

259259
dynamic "iap" {
260-
for_each = lookup(lookup(each.value, "iap_config", {}), "enable", false) ? [1] : []
260+
for_each = try(each.value["iap_config"], null) != null && lookup(try(each.value["iap_config"], {}), "enable", false) ? [1] : []
261261
content {
262-
oauth2_client_id = lookup(lookup(each.value, "iap_config", {}), "oauth2_client_id", "")
263-
oauth2_client_secret = lookup(lookup(each.value, "iap_config", {}), "oauth2_client_secret", "")
262+
enabled = lookup(each.value["iap_config"], "enable", false)
263+
oauth2_client_id = lookup(each.value["iap_config"], "oauth2_client_id")
264+
oauth2_client_secret = lookup(each.value["iap_config"], "oauth2_client_secret")
264265
}
265266
}
266267

autogen/variables.tf.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,11 @@ variable "backends" {
171171
})), [])
172172

173173
{% endif %}
174-
iap_config = object({
174+
iap_config = optional(object({
175175
enable = bool
176176
oauth2_client_id = optional(string)
177177
oauth2_client_secret = optional(string)
178-
})
178+
}))
179179
cdn_policy = optional(object({
180180
cache_mode = optional(string)
181181
signed_url_cache_max_age_sec = optional(string)

autogen/versions.tf.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ terraform {
2020

2121
google = {
2222
source = "hashicorp/google"
23-
version = ">= 4.84, < 6"
23+
version = ">= 6.0, < 7"
2424
}
2525
google-beta = {
2626
source = "hashicorp/google-beta"
27-
version = ">= 4.84, < 6"
27+
version = ">= 6.0, < 7"
2828
}
2929
random = {
3030
source = "hashicorp/random"

examples/cdn-policy/main.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ module "cloud-nat" {
5151

5252
module "mig_template" {
5353
source = "terraform-google-modules/vm/google//modules/instance_template"
54-
version = "~> 11.1"
54+
version = "~> 12.0"
5555
network = google_compute_network.default.self_link
5656
subnetwork = google_compute_subnetwork.default.self_link
5757
project_id = var.project_id
@@ -69,7 +69,7 @@ module "mig_template" {
6969

7070
module "mig" {
7171
source = "terraform-google-modules/vm/google//modules/mig"
72-
version = "~> 11.1"
72+
version = "~> 12.0"
7373
project_id = var.project_id
7474
instance_template = module.mig_template.self_link
7575
region = local.region
@@ -83,7 +83,7 @@ module "mig" {
8383

8484
module "gce-lb-http" {
8585
source = "terraform-google-modules/lb-http/google"
86-
version = "~> 10.0"
86+
version = "~> 12.0"
8787

8888
name = "mig-http-lb"
8989
project = var.project_id

examples/cdn-policy/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
terraform {
18-
required_version = ">= 0.13"
18+
required_version = ">= 1.3"
1919
required_providers {
2020
google = {
2121
source = "hashicorp/google"

examples/certificate-map/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ locals {
6565

6666
module "gce-lb-https" {
6767
source = "terraform-google-modules/lb-http/google"
68-
version = "~> 10.0"
68+
version = "~> 12.0"
6969
name = var.network_name
7070
project = var.project_id
7171
firewall_networks = [google_compute_network.default.self_link]

examples/certificate-map/mig.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ data "template_file" "group1-startup-script" {
2424

2525
module "mig1_template" {
2626
source = "terraform-google-modules/vm/google//modules/instance_template"
27-
version = "~> 11.1"
27+
version = "~> 12.0"
2828
network = google_compute_network.default.self_link
2929
subnetwork = google_compute_subnetwork.group1.self_link
3030
service_account = {
@@ -43,7 +43,7 @@ module "mig1_template" {
4343

4444
module "mig1" {
4545
source = "terraform-google-modules/vm/google//modules/mig"
46-
version = "~> 11.1"
46+
version = "~> 12.0"
4747
instance_template = module.mig1_template.self_link
4848
region = var.group1_region
4949
hostname = "${var.network_name}-group1"

examples/certificate-map/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
terraform {
18-
required_version = ">= 0.13"
18+
required_version = ">= 1.3"
1919
required_providers {
2020
google = {
2121
source = "hashicorp/google"

examples/cloudrun-implicit-serverless-neg/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
module "lb-http" {
1818
source = "terraform-google-modules/lb-http/google//modules/serverless_negs"
19-
version = "~> 10.0"
19+
version = "~> 12.0"
2020

2121
name = "tf-cr-lb-1"
2222
project = var.project_id

0 commit comments

Comments
 (0)