Allowing disabling logging and configuring optional fields in LB backend services (#3940)
* fix(modules): allow disabling logging and configuring optional fields in LB backend services
Replaced 'log_sample_rate' (number) with 'log_config' (object) in all Load Balancer Backend Service modules. This allows explicitly disabling logging ('enable = false') and configuring advanced options like 'optional_mode' and 'optional_fields', resolving infinite plan drift and the inability to disable logging.
Affected modules:
- net-lb-app-ext-regional
- net-lb-app-ext
- net-lb-app-int-cross-region
- net-lb-app-int
- net-lb-ext
- net-lb-int
- net-lb-proxy-int
Added test cases and updated documentation.
Fixes #3914
* style: format variables files with terraform fmt
* docs: add critical linting rule for AI agents to GEMINI.md
This commit is contained in:
committed by
GitHub
parent
16c245f43b
commit
bf9ccb7547
@@ -205,10 +205,12 @@ resource "google_compute_region_backend_service" "default" {
|
||||
}
|
||||
|
||||
dynamic "log_config" {
|
||||
for_each = each.value.log_sample_rate == null ? [] : [""]
|
||||
for_each = each.value.log_config == null ? [] : [""]
|
||||
content {
|
||||
enable = true
|
||||
sample_rate = each.value.log_sample_rate
|
||||
enable = each.value.log_config.enable
|
||||
sample_rate = each.value.log_config.sample_rate
|
||||
optional_mode = each.value.log_config.optional_mode
|
||||
optional_fields = each.value.log_config.optional_fields
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,14 +25,19 @@ variable "backend_service_configs" {
|
||||
connection_draining_timeout_sec = optional(number)
|
||||
enable_cdn = optional(bool)
|
||||
health_checks = optional(list(string), ["default"])
|
||||
log_sample_rate = optional(number)
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
protocol = optional(string)
|
||||
security_policy = optional(string)
|
||||
session_affinity = optional(string)
|
||||
locality_lb_policy = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
log_config = optional(object({
|
||||
enable = optional(bool)
|
||||
sample_rate = optional(number)
|
||||
optional_mode = optional(string)
|
||||
optional_fields = optional(list(string))
|
||||
}))
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
protocol = optional(string)
|
||||
security_policy = optional(string)
|
||||
session_affinity = optional(string)
|
||||
locality_lb_policy = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
backends = list(object({
|
||||
# group renamed to backend
|
||||
backend = string
|
||||
|
||||
@@ -209,10 +209,12 @@ resource "google_compute_backend_service" "default" {
|
||||
}
|
||||
|
||||
dynamic "log_config" {
|
||||
for_each = each.value.log_sample_rate == null ? [] : [""]
|
||||
for_each = each.value.log_config == null ? [] : [""]
|
||||
content {
|
||||
enable = true
|
||||
sample_rate = each.value.log_sample_rate
|
||||
enable = each.value.log_config.enable
|
||||
sample_rate = each.value.log_config.sample_rate
|
||||
optional_mode = each.value.log_config.optional_mode
|
||||
optional_fields = each.value.log_config.optional_fields
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,14 +28,19 @@ variable "backend_service_configs" {
|
||||
custom_response_headers = optional(list(string))
|
||||
enable_cdn = optional(bool)
|
||||
health_checks = optional(list(string), ["default"])
|
||||
log_sample_rate = optional(number)
|
||||
locality_lb_policy = optional(string)
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
protocol = optional(string)
|
||||
security_policy = optional(string)
|
||||
session_affinity = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
log_config = optional(object({
|
||||
enable = optional(bool)
|
||||
sample_rate = optional(number)
|
||||
optional_mode = optional(string)
|
||||
optional_fields = optional(list(string))
|
||||
}))
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
protocol = optional(string)
|
||||
security_policy = optional(string)
|
||||
session_affinity = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
backends = list(object({
|
||||
# group renamed to backend
|
||||
backend = string
|
||||
|
||||
@@ -150,10 +150,12 @@ resource "google_compute_backend_service" "default" {
|
||||
}
|
||||
|
||||
dynamic "log_config" {
|
||||
for_each = each.value.log_sample_rate == null ? [] : [""]
|
||||
for_each = each.value.log_config == null ? [] : [""]
|
||||
content {
|
||||
enable = true
|
||||
sample_rate = each.value.log_sample_rate
|
||||
enable = each.value.log_config.enable
|
||||
sample_rate = each.value.log_config.sample_rate
|
||||
optional_mode = each.value.log_config.optional_mode
|
||||
optional_fields = each.value.log_config.optional_fields
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,12 +25,17 @@ variable "backend_service_configs" {
|
||||
connection_draining_timeout_sec = optional(number)
|
||||
health_checks = optional(list(string), ["default"])
|
||||
locality_lb_policy = optional(string)
|
||||
log_sample_rate = optional(number)
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
protocol = optional(string)
|
||||
session_affinity = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
log_config = optional(object({
|
||||
enable = optional(bool)
|
||||
sample_rate = optional(number)
|
||||
optional_mode = optional(string)
|
||||
optional_fields = optional(list(string))
|
||||
}))
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
protocol = optional(string)
|
||||
session_affinity = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
backends = list(object({
|
||||
group = string
|
||||
balancing_mode = optional(string, "UTILIZATION")
|
||||
|
||||
@@ -628,6 +628,18 @@ module "ilb-l7" {
|
||||
backends = [{
|
||||
group = "projects/myprj/zones/europe-west1-a/instanceGroups/my-ig-2"
|
||||
}]
|
||||
log_config = {
|
||||
enable = true
|
||||
sample_rate = 0.5
|
||||
}
|
||||
}
|
||||
audio = {
|
||||
backends = [{
|
||||
group = "projects/myprj/zones/europe-west1-a/instanceGroups/my-ig-3"
|
||||
}]
|
||||
log_config = {
|
||||
enable = false
|
||||
}
|
||||
}
|
||||
}
|
||||
urlmap_config = {
|
||||
@@ -639,10 +651,16 @@ module "ilb-l7" {
|
||||
path_matchers = {
|
||||
pathmap = {
|
||||
default_service = "default"
|
||||
path_rules = [{
|
||||
paths = ["/video", "/video/*"]
|
||||
service = "video"
|
||||
}]
|
||||
path_rules = [
|
||||
{
|
||||
paths = ["/video", "/video/*"]
|
||||
service = "video"
|
||||
},
|
||||
{
|
||||
paths = ["/audio", "/audio/*"]
|
||||
service = "audio"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -652,7 +670,7 @@ module "ilb-l7" {
|
||||
}
|
||||
}
|
||||
|
||||
# tftest modules=1 resources=6
|
||||
# tftest modules=1 resources=7 inventory=urlmap.yaml
|
||||
```
|
||||
|
||||
### SSL Certificates
|
||||
|
||||
@@ -176,10 +176,12 @@ resource "google_compute_region_backend_service" "default" {
|
||||
}
|
||||
|
||||
dynamic "log_config" {
|
||||
for_each = each.value.log_sample_rate == null ? [] : [""]
|
||||
for_each = each.value.log_config == null ? [] : [""]
|
||||
content {
|
||||
enable = true
|
||||
sample_rate = each.value.log_sample_rate
|
||||
enable = each.value.log_config.enable
|
||||
sample_rate = each.value.log_config.sample_rate
|
||||
optional_mode = each.value.log_config.optional_mode
|
||||
optional_fields = each.value.log_config.optional_fields
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,13 +25,18 @@ variable "backend_service_configs" {
|
||||
connection_draining_timeout_sec = optional(number)
|
||||
health_checks = optional(list(string), ["default"])
|
||||
locality_lb_policy = optional(string)
|
||||
log_sample_rate = optional(number)
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
protocol = optional(string)
|
||||
session_affinity = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
security_policy = optional(string)
|
||||
log_config = optional(object({
|
||||
enable = optional(bool)
|
||||
sample_rate = optional(number)
|
||||
optional_mode = optional(string)
|
||||
optional_fields = optional(list(string))
|
||||
}))
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
protocol = optional(string)
|
||||
session_affinity = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
security_policy = optional(string)
|
||||
backends = list(object({
|
||||
group = string
|
||||
balancing_mode = optional(string, "UTILIZATION")
|
||||
|
||||
@@ -205,16 +205,16 @@ For deploying changes to load balancer configuration please refer to [net-lb-app
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [name](variables.tf#L198) | Name used for all resources. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L203) | Project id where resources will be created. | <code>string</code> | ✓ | |
|
||||
| [region](variables.tf#L208) | GCP region. | <code>string</code> | ✓ | |
|
||||
| [name](variables.tf#L203) | Name used for all resources. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L208) | Project id where resources will be created. | <code>string</code> | ✓ | |
|
||||
| [region](variables.tf#L213) | GCP region. | <code>string</code> | ✓ | |
|
||||
| [backend_service_config](variables.tf#L17) | Backend service level configuration. | <code>object({…})</code> | | <code>{}</code> |
|
||||
| [backends](variables.tf#L68) | Load balancer backends. | <code>list(object({…}))</code> | | <code>[]</code> |
|
||||
| [forwarding_rules_config](variables.tf#L79) | The optional forwarding rules configuration. | <code>map(object({…}))</code> | | <code>{…}</code> |
|
||||
| [group_configs](variables.tf#L95) | Optional unmanaged groups to create. Can be referenced in backends via outputs. | <code>map(object({…}))</code> | | <code>{}</code> |
|
||||
| [health_check](variables.tf#L108) | Name of existing health check to use, disables auto-created health check. | <code>string</code> | | <code>null</code> |
|
||||
| [health_check_config](variables.tf#L114) | Optional auto-created health check configuration, use the output self-link to set it in the auto healing policy. Refer to examples for usage. | <code>object({…})</code> | | <code>{…}</code> |
|
||||
| [labels](variables.tf#L192) | Labels set on resources. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [backends](variables.tf#L73) | Load balancer backends. | <code>list(object({…}))</code> | | <code>[]</code> |
|
||||
| [forwarding_rules_config](variables.tf#L84) | The optional forwarding rules configuration. | <code>map(object({…}))</code> | | <code>{…}</code> |
|
||||
| [group_configs](variables.tf#L100) | Optional unmanaged groups to create. Can be referenced in backends via outputs. | <code>map(object({…}))</code> | | <code>{}</code> |
|
||||
| [health_check](variables.tf#L113) | Name of existing health check to use, disables auto-created health check. | <code>string</code> | | <code>null</code> |
|
||||
| [health_check_config](variables.tf#L119) | Optional auto-created health check configuration, use the output self-link to set it in the auto healing policy. Refer to examples for usage. | <code>object({…})</code> | | <code>{…}</code> |
|
||||
| [labels](variables.tf#L197) | Labels set on resources. | <code>map(string)</code> | | <code>{}</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
||||
@@ -102,10 +102,12 @@ resource "google_compute_region_backend_service" "default" {
|
||||
}
|
||||
|
||||
dynamic "log_config" {
|
||||
for_each = var.backend_service_config.log_sample_rate == null ? [] : [""]
|
||||
for_each = var.backend_service_config.log_config == null ? [] : [""]
|
||||
content {
|
||||
enable = true
|
||||
sample_rate = var.backend_service_config.log_sample_rate
|
||||
enable = var.backend_service_config.log_config.enable
|
||||
sample_rate = var.backend_service_config.log_config.sample_rate
|
||||
optional_mode = var.backend_service_config.log_config.optional_mode
|
||||
optional_fields = var.backend_service_config.log_config.optional_fields
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,13 +29,18 @@ variable "backend_service_config" {
|
||||
ratio = optional(number)
|
||||
}))
|
||||
locality_lb_policy = optional(string)
|
||||
log_sample_rate = optional(number)
|
||||
name = optional(string)
|
||||
description = optional(string, "Terraform managed.")
|
||||
port_name = optional(string)
|
||||
protocol = optional(string, "UNSPECIFIED")
|
||||
session_affinity = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
log_config = optional(object({
|
||||
enable = optional(bool)
|
||||
sample_rate = optional(number)
|
||||
optional_mode = optional(string)
|
||||
optional_fields = optional(list(string))
|
||||
}))
|
||||
name = optional(string)
|
||||
description = optional(string, "Terraform managed.")
|
||||
port_name = optional(string)
|
||||
protocol = optional(string, "UNSPECIFIED")
|
||||
session_affinity = optional(string)
|
||||
timeout_sec = optional(number)
|
||||
})
|
||||
default = {}
|
||||
nullable = false
|
||||
|
||||
@@ -459,21 +459,21 @@ One other issue is a `Provider produced inconsistent final plan` error which is
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [name](variables.tf#L203) | Name used for all resources. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L208) | Project id where resources will be created. | <code>string</code> | ✓ | |
|
||||
| [region](variables.tf#L213) | GCP region. | <code>string</code> | ✓ | |
|
||||
| [vpc_config](variables.tf#L239) | VPC-level configuration. | <code>object({…})</code> | ✓ | |
|
||||
| [name](variables.tf#L208) | Name used for all resources. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L213) | Project id where resources will be created. | <code>string</code> | ✓ | |
|
||||
| [region](variables.tf#L218) | GCP region. | <code>string</code> | ✓ | |
|
||||
| [vpc_config](variables.tf#L244) | VPC-level configuration. | <code>object({…})</code> | ✓ | |
|
||||
| [backend_service_config](variables.tf#L17) | Backend service level configuration. | <code>object({…})</code> | | <code>{}</code> |
|
||||
| [backends](variables.tf#L53) | Load balancer backends. | <code>list(object({…}))</code> | | <code>[]</code> |
|
||||
| [context](variables.tf#L64) | Context-specific interpolations. | <code>object({…})</code> | | <code>{}</code> |
|
||||
| [description](variables.tf#L77) | Optional description used for resources. | <code>string</code> | | <code>"Terraform managed."</code> |
|
||||
| [forwarding_rules_config](variables.tf#L83) | The optional forwarding rules configuration. | <code>map(object({…}))</code> | | <code>{…}</code> |
|
||||
| [group_configs](variables.tf#L99) | Optional unmanaged groups to create. Can be referenced in backends via outputs. | <code>map(object({…}))</code> | | <code>{}</code> |
|
||||
| [health_check](variables.tf#L112) | Name of existing health check to use, disables auto-created health check. Also set `health_check_config = null` when cross-referencing an health check from another load balancer module to avoid a Terraform error. | <code>string</code> | | <code>null</code> |
|
||||
| [health_check_config](variables.tf#L118) | Optional auto-created health check configuration, use the output self-link to set it in the auto healing policy. Refer to examples for usage. | <code>object({…})</code> | | <code>{…}</code> |
|
||||
| [labels](variables.tf#L197) | Labels set on resources. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [service_attachments](variables.tf#L218) | PSC service attachments, keyed by forwarding rule. | <code>map(object({…}))</code> | | <code>null</code> |
|
||||
| [service_label](variables.tf#L233) | Optional prefix of the fully qualified forwarding rule name. | <code>string</code> | | <code>null</code> |
|
||||
| [backends](variables.tf#L58) | Load balancer backends. | <code>list(object({…}))</code> | | <code>[]</code> |
|
||||
| [context](variables.tf#L69) | Context-specific interpolations. | <code>object({…})</code> | | <code>{}</code> |
|
||||
| [description](variables.tf#L82) | Optional description used for resources. | <code>string</code> | | <code>"Terraform managed."</code> |
|
||||
| [forwarding_rules_config](variables.tf#L88) | The optional forwarding rules configuration. | <code>map(object({…}))</code> | | <code>{…}</code> |
|
||||
| [group_configs](variables.tf#L104) | Optional unmanaged groups to create. Can be referenced in backends via outputs. | <code>map(object({…}))</code> | | <code>{}</code> |
|
||||
| [health_check](variables.tf#L117) | Name of existing health check to use, disables auto-created health check. Also set `health_check_config = null` when cross-referencing an health check from another load balancer module to avoid a Terraform error. | <code>string</code> | | <code>null</code> |
|
||||
| [health_check_config](variables.tf#L123) | Optional auto-created health check configuration, use the output self-link to set it in the auto healing policy. Refer to examples for usage. | <code>object({…})</code> | | <code>{…}</code> |
|
||||
| [labels](variables.tf#L202) | Labels set on resources. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [service_attachments](variables.tf#L223) | PSC service attachments, keyed by forwarding rule. | <code>map(object({…}))</code> | | <code>null</code> |
|
||||
| [service_label](variables.tf#L238) | Optional prefix of the fully qualified forwarding rule name. | <code>string</code> | | <code>null</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
||||
@@ -134,10 +134,12 @@ resource "google_compute_region_backend_service" "default" {
|
||||
}
|
||||
|
||||
dynamic "log_config" {
|
||||
for_each = var.backend_service_config.log_sample_rate == null ? [] : [""]
|
||||
for_each = var.backend_service_config.log_config == null ? [] : [""]
|
||||
content {
|
||||
enable = true
|
||||
sample_rate = var.backend_service_config.log_sample_rate
|
||||
enable = var.backend_service_config.log_config.enable
|
||||
sample_rate = var.backend_service_config.log_config.sample_rate
|
||||
optional_mode = var.backend_service_config.log_config.optional_mode
|
||||
optional_fields = var.backend_service_config.log_config.optional_fields
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,12 @@ variable "backend_service_config" {
|
||||
drop_traffic_if_unhealthy = optional(bool)
|
||||
ratio = optional(number)
|
||||
}))
|
||||
log_sample_rate = optional(number)
|
||||
log_config = optional(object({
|
||||
enable = optional(bool)
|
||||
sample_rate = optional(number)
|
||||
optional_mode = optional(string)
|
||||
optional_fields = optional(list(string))
|
||||
}))
|
||||
name = optional(string)
|
||||
description = optional(string, "Terraform managed.")
|
||||
protocol = optional(string, "UNSPECIFIED")
|
||||
|
||||
@@ -334,21 +334,21 @@ For deploying changes to load balancer configuration please refer to [net-lb-app
|
||||
|
||||
| name | description | type | required | default |
|
||||
|---|---|:---:|:---:|:---:|
|
||||
| [name](variables.tf#L203) | Load balancer name. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L272) | Project id. | <code>string</code> | ✓ | |
|
||||
| [region](variables.tf#L277) | The region where to allocate the ILB resources. | <code>string</code> | ✓ | |
|
||||
| [vpc_config](variables.tf#L297) | VPC-level configuration. | <code>object({…})</code> | ✓ | |
|
||||
| [name](variables.tf#L208) | Load balancer name. | <code>string</code> | ✓ | |
|
||||
| [project_id](variables.tf#L277) | Project id. | <code>string</code> | ✓ | |
|
||||
| [region](variables.tf#L282) | The region where to allocate the ILB resources. | <code>string</code> | ✓ | |
|
||||
| [vpc_config](variables.tf#L302) | VPC-level configuration. | <code>object({…})</code> | ✓ | |
|
||||
| [address](variables.tf#L17) | Optional IP address used for the forwarding rule. | <code>string</code> | | <code>null</code> |
|
||||
| [backend_service_config](variables.tf#L23) | Backend service level configuration. | <code>object({…})</code> | | <code>{}</code> |
|
||||
| [description](variables.tf#L77) | Optional description used for resources. | <code>string</code> | | <code>"Terraform managed."</code> |
|
||||
| [global_access](variables.tf#L84) | Allow client access from all regions. | <code>bool</code> | | <code>null</code> |
|
||||
| [group_configs](variables.tf#L90) | Optional unmanaged groups to create. Can be referenced in backends via key or outputs. | <code>map(object({…}))</code> | | <code>{}</code> |
|
||||
| [health_check](variables.tf#L104) | Name of existing health check to use, disables auto-created health check. | <code>string</code> | | <code>null</code> |
|
||||
| [health_check_config](variables.tf#L110) | Optional auto-created health check configurations, use the output self-link to set it in the auto healing policy. Refer to examples for usage. | <code>object({…})</code> | | <code>{…}</code> |
|
||||
| [labels](variables.tf#L197) | Labels set on resources. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [neg_configs](variables.tf#L208) | Optional network endpoint groups to create. Can be referenced in backends via key or outputs. | <code>map(object({…}))</code> | | <code>{}</code> |
|
||||
| [port](variables.tf#L266) | Port. | <code>number</code> | | <code>80</code> |
|
||||
| [service_attachment](variables.tf#L282) | PSC service attachment. | <code>object({…})</code> | | <code>null</code> |
|
||||
| [description](variables.tf#L82) | Optional description used for resources. | <code>string</code> | | <code>"Terraform managed."</code> |
|
||||
| [global_access](variables.tf#L89) | Allow client access from all regions. | <code>bool</code> | | <code>null</code> |
|
||||
| [group_configs](variables.tf#L95) | Optional unmanaged groups to create. Can be referenced in backends via key or outputs. | <code>map(object({…}))</code> | | <code>{}</code> |
|
||||
| [health_check](variables.tf#L109) | Name of existing health check to use, disables auto-created health check. | <code>string</code> | | <code>null</code> |
|
||||
| [health_check_config](variables.tf#L115) | Optional auto-created health check configurations, use the output self-link to set it in the auto healing policy. Refer to examples for usage. | <code>object({…})</code> | | <code>{…}</code> |
|
||||
| [labels](variables.tf#L202) | Labels set on resources. | <code>map(string)</code> | | <code>{}</code> |
|
||||
| [neg_configs](variables.tf#L213) | Optional network endpoint groups to create. Can be referenced in backends via key or outputs. | <code>map(object({…}))</code> | | <code>{}</code> |
|
||||
| [port](variables.tf#L271) | Port. | <code>number</code> | | <code>80</code> |
|
||||
| [service_attachment](variables.tf#L287) | PSC service attachment. | <code>object({…})</code> | | <code>null</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
||||
@@ -93,10 +93,12 @@ resource "google_compute_region_backend_service" "default" {
|
||||
}
|
||||
|
||||
dynamic "log_config" {
|
||||
for_each = var.backend_service_config.log_sample_rate == null ? [] : [""]
|
||||
for_each = var.backend_service_config.log_config == null ? [] : [""]
|
||||
content {
|
||||
enable = true
|
||||
sample_rate = var.backend_service_config.log_sample_rate
|
||||
enable = var.backend_service_config.log_config.enable
|
||||
sample_rate = var.backend_service_config.log_config.sample_rate
|
||||
optional_mode = var.backend_service_config.log_config.optional_mode
|
||||
optional_fields = var.backend_service_config.log_config.optional_fields
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,11 +28,16 @@ variable "backend_service_config" {
|
||||
affinity_cookie_ttl_sec = optional(number)
|
||||
connection_draining_timeout_sec = optional(number)
|
||||
health_checks = optional(list(string), ["default"])
|
||||
log_sample_rate = optional(number)
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
session_affinity = optional(string, "NONE")
|
||||
timeout_sec = optional(number)
|
||||
log_config = optional(object({
|
||||
enable = optional(bool)
|
||||
sample_rate = optional(number)
|
||||
optional_mode = optional(string)
|
||||
optional_fields = optional(list(string))
|
||||
}))
|
||||
port_name = optional(string)
|
||||
project_id = optional(string)
|
||||
session_affinity = optional(string, "NONE")
|
||||
timeout_sec = optional(number)
|
||||
backends = optional(list(object({
|
||||
group = string
|
||||
balancing_mode = optional(string, "UTILIZATION")
|
||||
|
||||
Reference in New Issue
Block a user