This module manages the hashicorp/azurerm cdn resources.
For more information see https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs > cdn
<-- This file is autogenerated, please do not change. -->
Name |
Version |
terraform |
>=1.5 |
azurerm |
>=3.72.0, <4.0 |
Name |
Version |
azurerm |
>=3.72.0, <4.0 |
Name |
Type |
azurerm_cdn_endpoint.cdn_endpoint |
resource |
azurerm_cdn_endpoint_custom_domain.cdn_endpoint_custom_domain |
resource |
azurerm_cdn_frontdoor_custom_domain.cdn_frontdoor_custom_domain |
resource |
azurerm_cdn_frontdoor_endpoint.cdn_frontdoor_endpoint |
resource |
azurerm_cdn_frontdoor_firewall_policy.cdn_frontdoor_firewall_policy |
resource |
azurerm_cdn_frontdoor_origin.cdn_frontdoor_origin |
resource |
azurerm_cdn_frontdoor_origin_group.cdn_frontdoor_origin_group |
resource |
azurerm_cdn_frontdoor_profile.cdn_frontdoor_profile |
resource |
azurerm_cdn_frontdoor_route.cdn_frontdoor_route |
resource |
azurerm_cdn_frontdoor_rule.cdn_frontdoor_rule |
resource |
azurerm_cdn_frontdoor_rule_set.cdn_frontdoor_rule_set |
resource |
azurerm_cdn_frontdoor_secret.cdn_frontdoor_secret |
resource |
azurerm_cdn_frontdoor_security_policy.cdn_frontdoor_security_policy |
resource |
azurerm_cdn_profile.cdn_profile |
resource |
Name |
Description |
Type |
Default |
Required |
cdn_endpoint |
resource definition, default settings are defined within locals and merged with var settings |
any |
{} |
no |
cdn_endpoint_custom_domain |
resource definition, default settings are defined within locals and merged with var settings |
any |
{} |
no |
cdn_frontdoor_custom_domain |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_endpoint |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_firewall_policy |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_origin |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_origin_group |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_profile |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_route |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_rule |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_rule_set |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_secret |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_frontdoor_security_policy |
Resource definition, default settings are defined within locals and merged with var settings. For more information look at Outputs. |
any |
{} |
no |
cdn_profile |
resource definition, default settings are defined within locals and merged with var settings |
any |
{} |
no |
Name |
Description |
cdn_endpoint |
Outputs all attributes of resource_type. |
cdn_endpoint_custom_domain |
Outputs all attributes of resource_type. |
cdn_frontdoor_custom_domain |
Outputs all attributes of resource_type. |
cdn_frontdoor_endpoint |
Outputs all attributes of resource_type. |
cdn_frontdoor_firewall_policy |
Outputs all attributes of resource_type. |
cdn_frontdoor_origin |
Outputs all attributes of resource_type. |
cdn_frontdoor_origin_group |
Outputs all attributes of resource_type. |
cdn_frontdoor_profile |
Outputs all attributes of resource_type. |
cdn_frontdoor_route |
Outputs all attributes of resource_type. |
cdn_frontdoor_rule |
Outputs all attributes of resource_type. |
cdn_frontdoor_rule_set |
Outputs all attributes of resource_type. |
cdn_frontdoor_secret |
Outputs all attributes of resource_type. |
cdn_frontdoor_security_policy |
Outputs all attributes of resource_type. |
cdn_profile |
Outputs all attributes of resource_type. |
variables |
Displays all configurable variables passed by the module. default = predefined values per module. merged = result of merging the default values and custom values passed to the module |
Minimal configuration to install the desired resources with the module
module "cdn" {
source = "registry.terraform.io/telekom-mms/cdn/azurerm"
cdn_profile = {
cdnp-mms = {
location = "westeurope"
resource_group_name = "rg-mms-github"
sku = "Standard_Microsoft"
}
}
cdn_endpoint = {
cdne-mms = {
resource_group_name = module.cdn.cdn_profile["cdnp-mms"].resource_group_name
location = module.cdn.cdn_profile["cdnp-mms"].location
profile_name = module.cdn.cdn_profile["cdnp-mms"].name
origin = {
telekom-mms = {
host_name = "origin.telekom-mms.com"
}
}
}
}
cdn_endpoint_custom_domain = {
telekom-mms = {
cdn_endpoint_id = module.cdn.cdn_endpoint["cdne-mms"].id
host_name = "telekom-mms.com"
}
}
cdn_frontdoor_profile = {
afd-mms = {
resource_group_name = "rg-mms-github"
}
}
cdn_frontdoor_origin_group = {
non-backend = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
}
}
cdn_frontdoor_origin = {
non-backend = {
cdn_frontdoor_origin_group_id = module.cdn.cdn_frontdoor_origin_group["non-backend"].id
host_name = "127.0.0.0"
}
}
cdn_frontdoor_endpoint = {
"fde-non-backend" = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
}
}
cdn_frontdoor_custom_domain = {
"telekom-mms-com" = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
host_name = "telekom-mms.com"
}
}
cdn_frontdoor_route = {
non-backend = {
cdn_frontdoor_endpoint_id = module.cdn.cdn_frontdoor_endpoint["fde-non-backend"].id
cdn_frontdoor_origin_group_id = module.cdn.cdn_frontdoor_origin_group["non-backend"].id
cdn_frontdoor_origin_ids = [module.cdn.cdn_frontdoor_origin["non-backend"].id]
cdn_frontdoor_custom_domain_ids = [module.cdn.cdn_frontdoor_custom_domain["telekom-mms-com"].id]
}
}
cdn_frontdoor_rule_set = {
nonbackend = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
}
}
cdn_frontdoor_rule = {
rewrite = {
cdn_frontdoor_rule_set_id = module.cdn.cdn_frontdoor_rule_set["nonbackend"].id
order = 0
actions = {
leadingDomain = {
destination_hostname = "www.telekom-mms.com"
}
}
}
}
cdn_frontdoor_firewall_policy = {
fdfpmms = {
resource_group_name = "rg-mms-github"
sku_name = module.cdn.cdn_frontdoor_profile["afd-mms"].sku_name
}
}
cdn_frontdoor_security_policy = {
default = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
security_policies = {
firewall = {
cdn_frontdoor_firewall_policy_id = module.cdn.cdn_frontdoor_firewall_policy["fdfpmms"].id
association = {
domain = {
"www-telekom-mms-com" = {
cdn_frontdoor_domain_id = module.cdn.cdn_frontdoor_custom_domain["telekom-mms-com"].id
}
}
}
}
}
}
}
}
Advanced configuration to install the desired resources with the module
module "cdn" {
source = "registry.terraform.io/telekom-mms/cdn/azurerm"
cdn_profile = {
cdnp-mms = {
location = "westeurope"
resource_group_name = "rg-mms-github"
sku = "Standard_Microsoft"
tags = {
project = "mms-github"
environment = terraform.workspace
managed-by = "terraform"
}
}
}
cdn_endpoint = {
cdne-mms = {
resource_group_name = module.cdn.cdn_profile["cdnp-mms"].resource_group_name
location = module.cdn.cdn_profile["cdnp-mms"].location
profile_name = module.cdn.cdn_profile["cdnp-mms"].name
origin = {
telekom-mms = {
host_name = "origin.telekom-mms.com"
}
}
global_delivery_rule = {
cache_expiration_action = {
behavior = "Override"
duration = "00:05:00"
}
}
tags = {
project = "mms-github"
environment = terraform.workspace
managed-by = "terraform"
}
}
}
cdn_endpoint_custom_domain = {
telekom-mms = {
cdn_endpoint_id = module.cdn.cdn_endpoint["cdne-mms"].id
host_name = "telekom-mms.com"
cdn_managed_https = {
certificate_type = "Dedicated"
protocol_type = "ServerNameIndication"
}
}
}
cdn_frontdoor_profile = {
afd-mms = {
resource_group_name = "rg-mms-github"
sku_name = "Premium_AzureFrontDoor" // Premium because we want also managed WAF rules
tags = {
project = "mms-github"
environment = terraform.workspace
managed-by = "terraform"
}
}
}
cdn_frontdoor_origin_group = {
non-backend = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
}
}
cdn_frontdoor_origin = {
non-backend = {
cdn_frontdoor_origin_group_id = module.cdn.cdn_frontdoor_origin_group["non-backend"].id
host_name = "0.0.0.0"
certificate_name_check_enabled = false
}
}
cdn_frontdoor_endpoint = {
non-backend = {
name = "fde-non-backend"
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
tags = {
project = "mms-github"
environment = terraform.workspace
managed-by = "terraform"
}
}
}
cdn_frontdoor_custom_domain = {
"telekom-mms-com" = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
host_name = "telekom-mms.com"
}
}
cdn_frontdoor_route = {
non-backend = {
cdn_frontdoor_endpoint_id = module.cdn.cdn_frontdoor_endpoint["non-backend"].id
cdn_frontdoor_origin_group_id = module.cdn.cdn_frontdoor_origin_group["non-backend"].id
cdn_frontdoor_origin_ids = [module.cdn.cdn_frontdoor_origin["non-backend"].id]
cdn_frontdoor_custom_domain_ids = [module.cdn.cdn_frontdoor_custom_domain["telekom-mms-com"].id]
cache = {
query_string_caching_behavior = "IgnoreQueryString"
}
}
}
cdn_frontdoor_rule_set = {
nonbackend = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
}
}
cdn_frontdoor_rule = {
rewrite = {
cdn_frontdoor_rule_set_id = module.cdn.cdn_frontdoor_rule_set["nonbackend"].id
order = 0
actions = {
url_redirect_action = {
leadingDomain = {
destination_hostname = "www.telekom-mms.com"
}
}
response_header_action = {
Content-Security-Policy = {
header_action = "Append"
header_name = "Content-Security-Policy"
value = "frame-ancestors 'self'"
}
X-Content-Type-Options = {
header_action = "Append"
header_name = "X-Content-Type-Options"
value = "nosniff"
}
}
}
conditions = {
request_header_condition = {
Host = {
header_name = "Host"
match_values = ["telekom-mms.com"]
operator = "Equal"
}
}
}
}
}
cdn_frontdoor_firewall_policy = {
fdfpmms = {
resource_group_name = "rg-mms-github"
sku_name = module.cdn.cdn_frontdoor_profile["afd-mms"].sku_name
custom_rule = {
frontend = {
priority = 100
type = "MatchRule"
match_condition = {
ip_access = {
match_values = ["127.0.0.2"]
match_variable = "SocketAddr"
operator = "IPMatch"
negation_condition = true
}
}
}
}
managed_rule = {
BotManagerRuleSet = {
type = "Microsoft_BotManagerRuleSet"
version = "1.0"
}
}
tags = {
project = "mms-github"
environment = terraform.workspace
managed-by = "terraform"
}
}
}
cdn_frontdoor_security_policy = {
default = {
cdn_frontdoor_profile_id = module.cdn.cdn_frontdoor_profile["afd-mms"].id
security_policies = {
firewall = {
cdn_frontdoor_firewall_policy_id = module.cdn.cdn_frontdoor_firewall_policy["fdfpmms"].id
association = {
domain = {
"www-telekom-mms-com" = {
cdn_frontdoor_domain_id = module.cdn.cdn_frontdoor_custom_domain["telekom-mms-com"].id
}
}
}
}
}
}
}
}