gen-application-gateway

Latest: v1.2.0
Category
Networking
Total Versions
3
Last Updated
6/22/2026

Release History

v1.2.0 Latest

Changes:

  • New Features
  • Private Application Gateway support
  • The module can now deploy a fully private Application Gateway without a public IP.
  • New variables:
  • - `application_gateway_private` (bool, default: false) — When true, adds a private frontend IP configuration using a static IP on the Application Gateway subnet.
  • - `application_gateway_private_ip` (string, default: null) — Static private IP address to assign. Required when `application_gateway_private = true`.
  • - `application_gateway_public_ip_enabled` (bool, default: true) — Controls whether a public IP is created and attached. Set to false for a private-only deployment. Requires `application_gateway_private = true` when set to false.
  • HTTP and TCP listeners automatically resolve the correct frontend IP configuration name (appGatewayFrontendPrivateIP vs appGatewayFrontendPublicIP) based on the `application_gateway_private` flag, unless explicitly overridden via `frontend_ip_configuration_name`.
  • L4 TCP/TLS traffic routing
  • The module now supports Layer 4 TCP and TLS traffic routing in addition to the existing HTTP/HTTPS (Layer 7) routing. This maps to the `listener`, `backend`, and `routing_rule` blocks in the AzureRM provider.
  • New optional variables (all default to []):
  • - `application_gateway_listeners` — L4 TCP/TLS listener definitions. Use protocol = "Tcp" or protocol = "Tls". Note: host_names cannot be set when protocol is Tcp; ssl_certificate_name is required when protocol is Tls.
  • - `application_gateway_backend_settings` — L4 backend settings. Supports client IP preservation, custom timeouts, and trusted root certificates.
  • - `application_gateway_l4_routing_rules` — L4 routing rules that link a listener to a backend pool and backend settings. priority is mandatory.
  • Example — TCP passthrough on port 8443:
  • application_gateway_frontend_port_settings = [
  • { name = "frontend-tcp-8443", port = 8443 }
  • application_gateway_listeners = [
  • name = "myapp-tcp-listener"
  • frontend_port_name = "frontend-tcp-8443"
  • protocol = "Tcp"
  • application_gateway_backend_settings = [
  • name = "myapp-tcp-backend-settings"
  • port = 8443
  • timeout_in_seconds = 30
  • application_gateway_l4_routing_rules = [
  • name = "myapp-tcp-routing"
  • listener_name = "myapp-tcp-listener"
  • backend_address_pool_name = "myapp-backend-pool"
  • backend_name = "myapp-tcp-backend-settings"
  • priority = 100
  • Upgrade notes
  • - No breaking changes to existing HTTP/HTTPS configurations. All new variables are optional with safe defaults.
  • - The `azurerm_public_ip` resource is now conditional on `application_gateway_public_ip_enabled`. Existing deployments default this to true, so no state drift is expected.
  • Merged PR 19429: Update application gateway

v1.1.1

Changes:

  • Added the ACT - Nightly build trigger as a pipeline resource trigger. Pipeline will then only run the test stage every night. Removed src trigger
  • Merged PR 17095: Update pull request template and add nightly build trigger to YAML configuration

v1.1.0

Changes:

  • Added variable group
  • Changed releasenote branch to main
  • Changed PR template without skip
  • Added IPMhub publish
  • Merged PR 12201: Add header comment for managed identity resource in identity.tf
  • Updated pipeline and pull request template to work with the simacsupport releasenote website.
  • Update tflint to latest version.