oracle / terraform-provider-oci

Terraform Oracle Cloud Infrastructure provider
https://www.terraform.io/docs/providers/oci/
Mozilla Public License 2.0
731 stars 669 forks source link

Error while updating ssl_configuration.protocols for oci_load_balancer_backend_set #2139

Open lowranceworks opened 3 weeks ago

lowranceworks commented 3 weeks ago

Community Note

Terraform Version and Provider Version

Affected Resource(s)

"oci_load_balancer_backend_set"

Terraform Configuration Files

resource "oci_load_balancer_load_balancer" "a" {
  compartment_id = lookup(var.compartment_ids, "NonProd--Network")
  display_name   = "test"
  shape          = "flexible"
  subnet_ids = [
    lookup(var.subnet_ids, "TS-LBR-INTERNAL-AD3-NPD-SN"),
  ]
  defined_tags  = {}
  freeform_tags = {}
  ip_mode       = "IPV4"
  is_private    = true
  network_security_group_ids = [
    lookup(var.nsg_ids, "TS-NPD-CORPORATE-NSG"),
    lookup(var.nsg_ids, "TS-NPD-CDN-NSG"),
  ]
  shape_details {
    maximum_bandwidth_in_mbps = 100
    minimum_bandwidth_in_mbps = 10
  }

  lifecycle {
    ignore_changes = [defined_tags["Oracle-Tags.CreatedOn"], defined_tags["Oracle-Tags.CreatedBy"]]
  }
}

resource "oci_load_balancer_backend_set" "a" {
  name             = "test-a"
  load_balancer_id = oci_load_balancer_load_balancer.a.id
  policy           = "ROUND_ROBIN"

  health_checker {
    protocol            = "HTTP"
    interval_ms         = 10000
    port                = 443
    response_body_regex = ""
    retries             = 1
    return_code         = 200
    timeout_in_millis   = 3000
    url_path            = "/cache_info.jsp"
  }

  lb_cookie_session_persistence_configuration {
  }

  ssl_configuration {
    certificate_name                  = ""
    cipher_suite_name                 = "oci-default-http2-tls-12-13-ssl-cipher-suite-v1"
    certificate_ids                   = []
    server_order_preference           = ""
    trusted_certificate_authority_ids = ["ocid1.cabundle.oc1.phx.asdf"]
    verify_peer_certificate           = false
    verify_depth                      = 0
    # protocols                         = ["TLSv1.2", ]
    protocols = ["TLSv1.2", "TLSv1.3"]
  }
}

Debug Output

https://gist.github.com/lowranceworks/e71418d8ce811b790d60e302481ec2ce

Panic Output

n/a

Expected Behavior

add "TLSv1.2" to the list of ssl_configuration.protocols

Actual Behavior

Failed to update the list of ssl_configuration.protocols:

│ Error: 400-InvalidParameter, backends[0].ipAddress must not be null; backends[0].port must not be null │ Suggestion: Please update the parameter(s) in the Terraform config as per error message backends[0].ipAddress must not be null; backends[0].port must not be null │ Documentation: https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/load_balancer_backend_set │ API Reference: │ Request Target: PUT https://iaas.us-phoenix-1.oraclecloud.com/20170115/loadBalancers/ocid1.loadbalancer.oc1.phx.aaaaaaaauguhxkrwfpszgptxaceedixcxizlsaxuqfyeqrj6f75wso4lsk3a/backendSets/test-a │ Provider version: 5.46.0, released on 2024-06-12. │ Service: Load Balancer Backend Set │ Operation Name: UpdateBackendSet │ OPC request ID: 57f7909a08728eebcc9656a73fd81d70/330D67896770FE18AA2EF32FA84C7287/6B35388CCA8BF6F98EB2EDA77A9BAC4B

Steps to Reproduce

  1. terraform apply
  2. add or remove a protocol in ssl_configuration
  3. terraform apply

Important Factoids

n/a

References

https://gist.github.com/lowranceworks/e71418d8ce811b790d60e302481ec2ce/edit

plb-koerber commented 6 days ago

I get the same error when attempting to change the health check port on a backend set.