Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/padok-team/terraform-azurerm-frontdoor
https://github.com/padok-team/terraform-azurerm-frontdoor
azure azurerm cdn frontdoor terraform terraform-module
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/padok-team/terraform-azurerm-frontdoor
- Owner: padok-team
- License: apache-2.0
- Created: 2021-10-28T12:52:05.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-02-16T16:30:24.000Z (11 months ago)
- Last Synced: 2024-02-16T17:49:31.233Z (11 months ago)
- Topics: azure, azurerm, cdn, frontdoor, terraform, terraform-module
- Language: HCL
- Homepage:
- Size: 29.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# AZURE FRONTDOOR Terraform module
Terraform module which creates **FRONTDOOR** resources on **AZURE**.
## User Stories for this module
- AAOPS I can handle the incoming trafic to Azure
- AAOPS I can enforce HTTP to HTTPS redirections## Usage
```hcl
module "frontdoor" {
source = "[email protected]:padok-team/terraform-azurerm-frontdoor.git?ref=v0.1.0"name = "padokexamplefrontdoor"
resource_group_name =backend_pools = [{
name = "example-backendpool"
backends = [{
enabled = true
address = "padok.fr"
host_header = "padok.fr"
http_port = 80
https_port = 443priority = null
weight = null
}]
load_balancing_name = "example-load-balancing"
health_probe_name = "example-health-probe"
}]backend_pool_health_probes = [{
name = "example-health-probe"
enabled = falsepath = null
protocol = null
probe_method = null
interval_in_seconds = null
}]backend_pool_load_balancings = [{
name = "example-load-balancing"sample_size = null
successful_samples_required = null
additional_latency_milliseconds = null
}]enforce_backend_pools_certificate_name_check = false
friendly_name = "MyExampleFrontDoor"
frontend_endpoints = [{
name = "example-frontendendpoint"
host_name = "padokexamplefrontdoor.azurefd.net"session_affinity_enabled = null
session_affinity_ttl_seconds = null
web_application_firewall_policy_link_id = null
}]routing_rules = [{
name = "example-routingrule"
frontend_endpoints = ["example-frontendendpoint"]
accepted_protocols = ["Http", "Https"]
patterns_to_match = ["/*"]
enabled = true
forwarding_configuration = {
backend_pool_name = "example-backendpool"
cache_enabled = false
forwarding_protocol = "MatchRequest"cache_use_dynamic_compression = null
cache_query_parameter_strip_directive = null
cache_query_parameters = null
cache_duration = null
custom_forwarding_path = null
}redirect_configuration = null
}]tags = {
terraform = "true"
padok = "library"
}}
```
## Examples
- [Frontdoor redirecting to padok.fr](examples/frontdoor_basic_example/main.tf)
- [Frontdoor with HTTP to HTTPS redirection](examples/frontdoor_with_https_redirection/main.tf)## Modules
No modules.
## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [backend\_pool\_health\_probes](#input\_backend\_pool\_health\_probes) | A list of the backend pool health probes. |list(object({| n/a | yes |
name = string
enabled = bool
path = string
protocol = string
probe_method = string
interval_in_seconds = number
}))
| [backend\_pool\_load\_balancings](#input\_backend\_pool\_load\_balancings) | A list of the backend pool load balancing. |list(object({| n/a | yes |
name = string
sample_size = number
successful_samples_required = number
additional_latency_milliseconds = number
}))
| [backend\_pools](#input\_backend\_pools) | A list of backend pools. |list(object({| n/a | yes |
name = string
backends = list(object({
enabled = bool
address = string
host_header = string
http_port = number
https_port = number
priority = number
weight = number
}))
load_balancing_name = string
health_probe_name = string
}))
| [name](#input\_name) | The name of the Front Door. | `string` | n/a | yes |
| [resource\_group\_name](#input\_resource\_group\_name) | The name of the resource group where the Frontdoor should be created. | `string` | n/a | yes |
| [backend\_pools\_send\_receive\_timeout\_seconds](#input\_backend\_pools\_send\_receive\_timeout\_seconds) | Timeout on forwarding request to the backend. | `number` | `60` | no |
| [enforce\_backend\_pools\_certificate\_name\_check](#input\_enforce\_backend\_pools\_certificate\_name\_check) | Enforce certificate name check on HTTPS for all backend pools. | `bool` | `true` | no |
| [friendly\_name](#input\_friendly\_name) | A friendly name for the Frontdoor. | `string` | `null` | no |
| [frontend\_endpoints](#input\_frontend\_endpoints) | A list of frontend endpoints to configure. |list(object({| `null` | no |
name = string
host_name = string
session_affinity_enabled = bool
session_affinity_ttl_seconds = number
web_application_firewall_policy_link_id = string
}))
| [load\_balancer\_enabled](#input\_load\_balancer\_enabled) | Should the Frontdoor load balancer be enabled ? | `bool` | `true` | no |
| [routing\_rules](#input\_routing\_rules) | A list of routing rules. |list(object({| `null` | no |
name = string
frontend_endpoints = list(string)
accepted_protocols = list(string)
patterns_to_match = list(string)
enabled = bool
forwarding_configuration = object({
backend_pool_name = string
cache_enabled = bool
cache_use_dynamic_compression = bool
cache_query_parameter_strip_directive = string
cache_query_parameters = list(string)
cache_duration = number
custom_forwarding_path = string
forwarding_protocol = string
})
redirect_configuration = object({
custom_host = string
redirect_protocol = string
redirect_type = string
custom_fragment = string
custom_path = string
custom_query_string = string
})
}))
| [tags](#input\_tags) | A mapping of tags associated to the resource. | `map(string)` |{| no |
"terraform": "true"
}## Outputs
| Name | Description |
|------|-------------|
| [this](#output\_this) | The Frontdoor resource. |## License
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
See [LICENSE](LICENSE) for full details.
```text
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License athttps://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
```