hashicorp / terraform-provider-azurerm

Terraform provider for Azure Resource Manager
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs
Mozilla Public License 2.0
4.46k stars 4.54k forks source link

Add support to azurerm_application_gateway for the preview TCP/TLS Proxy feature #26239

Open atosadam opened 1 month ago

atosadam commented 1 month ago

Is there an existing issue for this?

Community Note

Description

The Application Gateway now supports the provisioning of L4 Proxies, currently in public preview: https://learn.microsoft.com/en-us/azure/application-gateway/tcp-tls-proxy-overview?source=recommendations

It is not possible to currently configure these via Terraform, although the CLI/API has been updated to support: https://learn.microsoft.com/en-us/azure/application-gateway/application-gateway-faq#configuration---tls-tcp-proxy

https://learn.microsoft.com/en-us/rest/api/application-gateway/application-gateways/create-or-update?view=rest-application-gateway-2023-09-01&tabs=HTTP#applicationgatewaybackendsettings

New configuration items are: listeners (as opposed to httpListeners) routingRule backendSettingsCollection

New or Affected Resource(s)/Data Source(s)

azurerm_application_gateway

Potential Terraform Configuration

.....

  frontend_ip_configuration {
    name                 = "myip"
    public_ip_address_id = azurerm_public_ip.example.id
  }

  backend_address_pool {
    name = "mybackendpool"
  }

  backend_settings {
    name                  = "backend_tcp_settings"
    port                  = 1433
    protocol              = "Tcp"
    request_timeout       = 60
  }

  listener {
    name                           = "tcp_listener"
    frontend_ip_configuration_name = "myip"
    frontend_port_name             = "myport"
    protocol                       = "Tcp"
  }

  routing_rule {
    name                       = "myrule"
    priority                   = 9
    rule_type                  = "Basic"
    listener_name              = "tcp_listner"
    backend_address_pool_name  = "mybackendpool"
    backend_settings_name      = "backend_settings"
  }

References

https://learn.microsoft.com/en-us/azure/application-gateway/application-gateway-faq#configuration---tls-tcp-proxy

https://learn.microsoft.com/en-us/rest/api/application-gateway/application-gateways/create-or-update?view=rest-application-gateway-2023-09-01&tabs=HTTP#applicationgatewaybackendsettings

https://learn.microsoft.com/en-us/azure/application-gateway/tcp-tls-proxy-overview?source=recommendations

zacksiri commented 3 weeks ago

Definitely need this. I thought the standard lb can do this but apparently that's just a pass through.