11locals {
2+ api_prefix = " api"
23 apim_prefix = " apim"
34 cdn_prefix = " cdn"
45
@@ -19,12 +20,15 @@ locals {
1920 apim_backend_settings_name = " ${ local . apim_prefix } -backend-pool-settings"
2021 cdn_backend_settings_name = " ${ local . cdn_prefix } -backend-pool-settings"
2122
23+ api_listener_name = " ${ local . api_prefix } -listener"
2224 apim_http_listener_name = " ${ local . apim_prefix } -listener"
2325 cdn_listener_name = " ${ local . cdn_prefix } -listener"
2426
27+ certificate_name_api = " api-wallet-io-pagopa-it"
2528 certificate_name_internal = " api-internal-wallet-io-pagopa-it"
2629 certificate_name_cdn = " wallet-io-pagopa-it"
2730
31+ api_routing_rule_name = " ${ local . api_prefix } -routing-rule"
2832 apim_routing_rule_name = " ${ local . apim_prefix } -routing-rule"
2933 cdn_routing_rule_name = " ${ local . cdn_prefix } -routing-rule"
3034
@@ -112,7 +116,6 @@ resource "azurerm_application_gateway" "hub" {
112116 request_timeout = 20
113117 }
114118
115-
116119 http_listener {
117120 name = local. appgw . apim_http_listener_name
118121 frontend_ip_configuration_name = local. appgw . frontend_private_ip_configuration_name
@@ -131,6 +134,15 @@ resource "azurerm_application_gateway" "hub" {
131134 ssl_certificate_name = local. appgw . certificate_name_cdn
132135 }
133136
137+ http_listener {
138+ name = local. appgw . api_listener_name
139+ frontend_ip_configuration_name = local. appgw . frontend_public_ip_configuration_name
140+ frontend_port_name = local. appgw . frontend_secure_port_name
141+ protocol = " Https"
142+ require_sni = false
143+ ssl_certificate_name = local. appgw . certificate_name_api
144+ }
145+
134146 request_routing_rule {
135147 name = local. appgw . apim_routing_rule_name
136148 priority = 10010
@@ -140,6 +152,15 @@ resource "azurerm_application_gateway" "hub" {
140152 backend_http_settings_name = local. appgw . apim_backend_settings_name
141153 }
142154
155+ request_routing_rule {
156+ name = local. appgw . api_routing_rule_name
157+ priority = 10012
158+ http_listener_name = local. appgw . api_http_listener_name
159+ rule_type = " Basic"
160+ backend_address_pool_name = local. appgw . apim_backend_pool_name
161+ backend_http_settings_name = local. appgw . apim_backend_settings_name
162+ }
163+
143164 request_routing_rule {
144165 name = local. appgw . cdn_routing_rule_name
145166 priority = 10020
@@ -152,14 +173,14 @@ resource "azurerm_application_gateway" "hub" {
152173 probe {
153174 name = local. appgw . apim_probe_name
154175 protocol = " Https"
155- path = " /"
176+ path = " /echo/fake " # temporary path for health probe
156177 timeout = 5
157178 interval = 10
158179 unhealthy_threshold = 3
159180 pick_host_name_from_backend_http_settings = true
160181
161182 match {
162- status_code = [" 200 " ]
183+ status_code = [" 204 " ]
163184 }
164185 }
165186
@@ -211,6 +232,11 @@ resource "azurerm_application_gateway" "hub" {
211232 key_vault_secret_id = " https://iw-p-itn-infra-kv-01.vault.azure.net:443/secrets/${ local . appgw . certificate_name_cdn } /"
212233 }
213234
235+ ssl_certificate {
236+ name = local. appgw . certificate_name_api
237+ key_vault_secret_id = " https://iw-p-itn-infra-kv-01.vault.azure.net:443/secrets/${ local . appgw . certificate_name_api } /"
238+ }
239+
214240 ssl_policy {
215241 policy_type = " Custom"
216242 min_protocol_version = " TLSv1_2"
0 commit comments