tfmodule-azure-frontdoor

Overview

Azure Front Door module To stay up to date on our latest changes, visit our Change Log.

Usage

module "tfmodule-azure-frontdoor" {
  source = "github.com/AlaskaAirlines/tfmodule-azure-frontdoor"
}

Requirements

No requirements.

Providers

Name Version
azurerm n/a

Inputs

Name Description Type Default Required
backend_pool_health_probe_configurations The health probe configurations to pair with your backend pools
map(object({
name = string
path = string
protocol = string
interval_in_seconds = number
}))
n/a yes
backend_pool_load_balancing_configurations The load balancing configurations to pair with your backend pools
map(object({
name = string
sample_size = number
successful_samples_required = number
additional_latency_milliseconds = number
}))
n/a yes
backend_pools The backend pools for your front door
map(object({
name = string
load_balancing_name = string
health_probe_name = string
backends = map(object({
enabled = bool
address = string
host_header = string
http_port = number
https_port = number
priority = number
weight = number
}))
}))
n/a yes
custom_rules WAF Custom Rules
map(object({
waf = string
name = string
action = string
enabled = bool
priority = number
type = string
match_condition = object({
match_variable = string
match_values = list(string)
operator = string
selector = string
negation_condition = bool
transforms = list(string)
})
rate_limit_duration_in_minutes = number
rate_limit_threshold = number
}))
{} no
enforce_backend_pools_certificate_name_check The flag to determine if you want to validate backend pool certificate names bool n/a yes
forwarding_configurations The forwarding configuration for your routing_rules
map(object({
routing_rule_name = string
backend_pool_name = string
cache_enabled = bool
cache_use_dynamic_compression = bool
cache_query_parameter_strip_directive = string
custom_forwarding_path = string
forwarding_protocol = string
}))
n/a yes
frontdoor_friendly_name The friendly name of your front door string n/a yes
frontdoor_name The name of your front door string n/a yes
frontdoor_wafs Front Door WAF Object configuration https://www.terraform.io/docs/providers/azurerm/r/frontdoor_firewall_policy.html#argument-reference
map(object({
name = string
enabled = bool
mode = string
redirect_url = string
}))
{} no
frontend_endpoints The front door endpoint resources for your front door
map(object({
name = string
host_name = string
session_affinity_enabled = bool
session_affinity_ttl_seconds = number
custom_https_provisioning_enabled = bool
custom_https_configuration = object({
certificate_source = string
})
web_application_firewall_policy_link_name = string
}))
n/a yes
load_balancer_enabled The flag to determine whether or not load balancing is enabled on your front door string n/a yes
managed_rules WAF Managed Rules
map(object({
waf = string
type = string
version = string
exclusions = map(object({
match_variable = string
operator = string
selector = string
}))
overrides = map(object({
rule_group_name = string
exclusions = map(object({
match_variable = string
operator = string
selector = string
}))
rules = map(object({
rule_id = string
action = string
enabled = bool
exclusions = map(object({
match_variable = string
operator = string
selector = string
}))
}))
}))
}))
{} no
redirect_configurations The redirect configuration for your routing_rules
map(object({
routing_rule_name = string
custom_host = string
redirect_protocol = string
redirect_type = string
}))
n/a yes
resource_group_name Resource Group of the Azure Front Door to be created any n/a yes
routing_rules The routing rules for your frontizzle
map(object({
name = string
frontend_endpoints = list(string)
accepted_protocols = list(string)
patterns_to_match = list(string)
enabled = bool
configuration = string
}))
n/a yes
tags Tags of the Azure Front Door WAF Policy to be created map(any) n/a yes

Outputs

Name Description
cname n/a
frontdoor n/a
frontdoor_waf_policy n/a
frontdoor_waf_policy_map n/a
frontend_endpoint_map n/a
id n/a
name n/a

Development

Prerequisites

Configurations

Issue the following command

> make install

This will perform the following steps for you

  • Initialize git repository
  • Install pre-commit hooks
  • Install Terraform
  • Prepare testing framework

Tests

  • Tests are available in test directory
  • In the module root directory, run the below command
make test

Maintainers

Author: Shadow Quests (E-Commerce Platform Team) <shadowquests@alaskaair.com>

This project was generated by generator-aag-terraform-module