Skip to content

sknaresh2000/terraform-azurerm-application-gateway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Requirements

No requirements.

Providers

Name Version
azurerm n/a

Modules

No modules.

Resources

Name Type
azurerm_application_gateway.app-gateway resource
azurerm_monitor_diagnostic_setting.agw-diag resource
azurerm_monitor_diagnostic_setting.public-ip-diag resource
azurerm_public_ip.publicip resource

Inputs

Name Description Type Default Required
agw_diag_logs Application Gateway Monitoring Category details for Azure Diagnostic setting list(string)
[
"ApplicationGatewayAccessLog",
"ApplicationGatewayPerformanceLog",
"ApplicationGatewayFirewallLog"
]
no
agw_diag_name Diagnostic settings name for Application Gateway string n/a yes
appgw_sku_name The Name of the SKU to use for this Application Gateway. Possible values are Standard_Small, Standard_Medium, Standard_Large, Standard_v2, WAF_Medium, WAF_Large, and WAF_v2 string n/a yes
appgw_sku_tier The Tier of the SKU to use for this Application Gateway. Possible values are Standard, Standard_v2, WAF and WAF_v2 string n/a yes
autoscale_configuration Minimum or Maximum capacity for autoscaling. Accepted values are for Minimum in the range 0 to 100 and for Maximum in the range 2 to 125
object({
min_capacity = number
max_capacity = number
})
null no
backend_address_pools Name, IP Address and FQDN details of the backend address pool
map(object({
ip_addresses = list(string)
fqdns = list(string)
}))
n/a yes
backend_http_settings Backend HTTP settings
map(object({
path = string
protocol = string
port = number
request_timeout = number
probe_name = string
conn_draining_enabled = bool
conn_draining_timeout = number
cookie_based_affinity = string
affinity_cookie_name = string
pick_host_name_from_backend_address = bool
host_name = string
}))
n/a yes
capacity The Capacity of the SKU to use for this Application Gateway. When using a V1 SKU this value must be between 1 and 32, and 1 to 125 for a V2 SKU. This property is optional if autoscale_configuration is set. number n/a yes
domain_name_label Label for the Domain Name. Will be used to make up the FQDN. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. string null no
enable_http2 Is HTTP2 enabled on the application gateway resource? Defaults to false bool null no
eventhub_authorization_rule_id Event Hub Authorization Rule id for diagnostic settings string null no
firewall_policy_id WAF Firewall Policy id to link to this app gateway string null no
frontend_port Front end port details
map(object({
port = number
}))
n/a yes
http_listeners The listener details for this app gateway
map(object({
frontend_ip_configuration_name = string
frontend_port_name = string
protocol = string
host_name = string
host_names = list(string)
ssl_certificate_name = string
}))
n/a yes
identity_ids Specifies a list of User Assigned Managed Identity IDs to be assigned to this Application Gateway list(string) null no
inbuilt_waf_configs Details of WAF that can be configured along with application gateway
object({
enabled = bool
firewall_mode = string
rule_set_type = string
rule_set_version = string
exclusions = list(object({
match_variable = string
selector_match_operator = string
selector = string
}))
disabled_rule_groups = list(object({
rule_group_name = string
rules = list(string)
}))
})
{
"disabled_rule_groups": [],
"enabled": false,
"exclusions": [],
"firewall_mode": null,
"rule_set_type": null,
"rule_set_version": null
}
no
location The Azure region where the Application Gateway should exist. Changing this forces a new resource to be created. string "eastus" no
log_analytics_workspace_id Log Analytics Workspace id for diagnostic settings string n/a yes
name The name of the application gateway string n/a yes
pip_diag_logs Load balancer Public IP Monitoring Category details for Azure Diagnostic setting list(string)
[
"DDoSProtectionNotifications",
"DDoSMitigationFlowLogs",
"DDoSMitigationReports"
]
no
private_ip_address private ip address for this app gateway string n/a yes
probes Health Probes to be created in this app gateway
map(object({
interval = number
path = string
protocol = string
timeout = number
unhealthy_threshold = number
pick_host_name_from_backend_http_settings = bool
host = string
}))
n/a yes
public_ip_name The name of a Public IP Address which the Application Gateway should use. V2 always rquires a public ip address. If you would like to make V2 app gateway as private, please follow the link - https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-faq#how-do-i-use-application-gateway-v2-with-only-private-frontend-ip-address string null no
publicip_diag_name Diagnostic settings name for Public IP string null no
redirect_configs Redirection details if any for this app gateway
map(object({
redirect_type = string
target_listener_name = string
target_url = string
include_path = string
include_query_string = string
}))
{} no
resource_group_name The name of the resource group in which to the Application Gateway should exist. string n/a yes
rewrite_rule_sets Rewrite rule set details
map(object({
rewrite_rule = map(object({
rule_sequence = number
condition = list(object({
variable = string
pattern = string
ignore_case = string
negate = string
}))
request_header_configuration = list(object({
header_name = string
header_value = string
}))
response_header_configuration = list(object({
header_name = string
header_value = string
}))
}))
}))
{} no
routing_rules Routing rules that determines the traffic destination
map(object({
rule_type = string
http_listener_name = string
backend_address_pool_name = string
backend_http_settings_name = string
redirect_configuration_name = string
priority = number
url_path_map_name = string
rewrite_rule_set_name = string
}))
n/a yes
ssl_certificates SSL Certificate details if its listening on port 443
map(object({
data = string
password = string
key_vault_secret_id = string
}))
{} no
storage_account_id Storage account id for diagnostic settings string null no
subnet_id The ID of the Subnet. string n/a yes
tags A mapping of tags to assign to the resource. map(string) n/a yes
trusted_root_certificates Trusted CA Cert details if its not a well known CA
map(object({
data = string
kv_trusted_cert_id = string
}))
{} no
url_path_map URL Path based Routing details. This is required if routing rule type is set as PathBasedRouting
map(object({
default_backend_address_pool_name = string
default_backend_http_settings_name = string
default_redirect_configuration_name = string
default_rewrite_rule_set_name = string
path_rule = map(object({
paths = list(string)
backend_http_settings_name = string
backend_address_pool_name = string
rewrite_rule_set_name = string
redirect_configuration_name = string
}))
}))
{} no
zones A list of Availability Zones list(string) [] no

Outputs

Name Description
app_gateway_id The ID of the Application Gateway.
fqdn n/a
ip_address n/a

About

Terraform Application Gateway Module

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages