Skip to content

Terraform

Requirements

Name Version
terraform >= 1.13.3
azapi 2.7.0
azurerm ~> 4.45

Providers

Name Version
azapi 2.7.0
azurerm ~> 4.45

Modules

No modules.

Resources

Name Type
azapi_resource.gettoananswer_api_pe_subnet resource
azapi_resource.gettoananswer_kv_subnet resource
azapi_resource.gettoananswer_main_subnet resource
azurerm_application_insights.application-insights resource
azurerm_cdn_frontdoor_custom_domain.fd-admin-custom-domain resource
azurerm_cdn_frontdoor_custom_domain.fd-api-custom-domain resource
azurerm_cdn_frontdoor_custom_domain.fd-frontend-custom-domain resource
azurerm_cdn_frontdoor_custom_domain_association.admin-app-custom-domain resource
azurerm_cdn_frontdoor_custom_domain_association.api-app-custom-domain resource
azurerm_cdn_frontdoor_custom_domain_association.frontend-app-custom-domain resource
azurerm_cdn_frontdoor_endpoint.frontdoor-admin-endpoint resource
azurerm_cdn_frontdoor_endpoint.frontdoor-api-endpoint resource
azurerm_cdn_frontdoor_endpoint.frontdoor-frontend-endpoint resource
azurerm_cdn_frontdoor_firewall_policy.web_firewall_policy resource
azurerm_cdn_frontdoor_origin.frontdoor-admin-origin resource
azurerm_cdn_frontdoor_origin.frontdoor-api-origin resource
azurerm_cdn_frontdoor_origin.frontdoor-frontend-origin resource
azurerm_cdn_frontdoor_origin_group.fd-admin-origin-group resource
azurerm_cdn_frontdoor_origin_group.fd-api-origin-group resource
azurerm_cdn_frontdoor_origin_group.fd-frontend-origin-group resource
azurerm_cdn_frontdoor_profile.frontdoor-web-profile resource
azurerm_cdn_frontdoor_route.frontdoor-admin-route resource
azurerm_cdn_frontdoor_route.frontdoor-api-route resource
azurerm_cdn_frontdoor_route.frontdoor-frontend-route resource
azurerm_container_registry.gettoananswer-registry resource
azurerm_key_vault.kv resource
azurerm_key_vault_secret.ad_client_id resource
azurerm_key_vault_secret.ad_client_secret resource
azurerm_key_vault_secret.ad_tenant_id resource
azurerm_key_vault_secret.bs_connection_string resource
azurerm_key_vault_secret.connection_string resource
azurerm_key_vault_secret.sql_admin_password resource
azurerm_linux_web_app.gettoananswer-admin resource
azurerm_linux_web_app.gettoananswer-api resource
azurerm_linux_web_app.gettoananswer-frontend resource
azurerm_linux_web_app_slot.gettoananswer-admin-staging resource
azurerm_linux_web_app_slot.gettoananswer-api-staging resource
azurerm_linux_web_app_slot.gettoananswer-frontend-staging resource
azurerm_log_analytics_workspace.log-analytics-workspace resource
azurerm_monitor_action_group.service-support-action resource
azurerm_monitor_metric_alert.admin_app_error_alert resource
azurerm_monitor_metric_alert.api_app_error_alert resource
azurerm_monitor_metric_alert.availability-alert resource
azurerm_monitor_metric_alert.cpu_alert resource
azurerm_monitor_metric_alert.frontend_app_error_alert resource
azurerm_monitor_metric_alert.memory_alert resource
azurerm_monitor_smart_detector_alert_rule.dependency-performance-degradation-detector resource
azurerm_monitor_smart_detector_alert_rule.exception-volume-changed-detector resource
azurerm_monitor_smart_detector_alert_rule.failure-anomalies-detector resource
azurerm_monitor_smart_detector_alert_rule.memory-leak-detector resource
azurerm_monitor_smart_detector_alert_rule.request-performance-degradation-detector resource
azurerm_monitor_smart_detector_alert_rule.trace-severity-detector resource
azurerm_mssql_database.gettoananswer_mssql_db resource
azurerm_mssql_server.gettoananswer_mssql_server resource
azurerm_mssql_virtual_network_rule.mssql_vnet_rule resource
azurerm_network_security_group.gettoananswer-nsg resource
azurerm_private_dns_zone.default resource
azurerm_private_dns_zone.kv resource
azurerm_private_dns_zone.webapps_privatelink resource
azurerm_private_dns_zone_virtual_network_link.default resource
azurerm_private_dns_zone_virtual_network_link.kv_link resource
azurerm_private_dns_zone_virtual_network_link.webapps_privatelink_vnet_link resource
azurerm_private_endpoint.api_pe resource
azurerm_private_endpoint.kv_pe resource
azurerm_resource_group.gettoananswer-rg resource
azurerm_role_assignment.acr_pull_role resource
azurerm_role_assignment.kv_admin_sp resource
azurerm_role_assignment.kv_administrator resource
azurerm_role_assignment.kv_officer resource
azurerm_role_assignment.kv_user resource
azurerm_service_plan.gettoananswer-web-asp resource
azurerm_storage_account.sa resource
azurerm_storage_container.container resource
azurerm_user_assigned_identity.gtaa-identity resource
azurerm_virtual_network.gettoananswer_vnet resource
azurerm_client_config.client data source
azurerm_role_definition.acr_pull data source
azurerm_role_definition.kv_admin data source
azurerm_role_definition.kv_secrets_officer data source
azurerm_role_definition.kv_secrets_user data source
azurerm_subscription.primary data source

Inputs

Name Description Type Default Required
ad_client_id Azure Active Directory App Client Id string n/a yes
ad_client_secret Azure Active Directory App Client Secret string n/a yes
ad_tenant_id Tenant ID string n/a yes
admin_custom_domain The public subdomain for the admin service string n/a yes
admin_image_name The repository name and tag for the admin container. string n/a yes
alerting Alerting configuration per environment
map(object({
name = string
alerts_enabled = bool
email_alerts_enabled = bool
smart_alerts_enabled = bool
thresholds = object({
availability = number
cpu = number
memory = number
error = number
})
}))
{
"s263d01": {
"alerts_enabled": false,
"email_alerts_enabled": false,
"name": "Test",
"smart_alerts_enabled": false,
"thresholds": {
"availability": 90,
"cpu": 95,
"error": 5,
"memory": 95
}
},
"s263p01": {
"alerts_enabled": true,
"email_alerts_enabled": true,
"name": "Production",
"smart_alerts_enabled": true,
"thresholds": {
"availability": 99.9,
"cpu": 85,
"error": 1,
"memory": 85
}
},
"s263t01": {
"alerts_enabled": true,
"email_alerts_enabled": false,
"name": "Staging",
"smart_alerts_enabled": true,
"thresholds": {
"availability": 99.9,
"cpu": 85,
"error": 1,
"memory": 85
}
}
}
no
api_custom_domain The public subdomain for the api service string n/a yes
api_image_name The repository name and tag for the API container. string n/a yes
asp_env Environment (dev, test, prod) string n/a yes
azure_frontdoor_scale Azure Front Door Scale string "Standard" no
env Environment (dev, test, prod) string n/a yes
frontend_custom_domain The public subdomain for the frontend service string n/a yes
frontend_image_name The repository name and tag for the frontend container. string n/a yes
is_admin_deployment Only prepare the slot for Admin bool false no
is_api_deployment Only prepare the slot for Api bool false no
is_frontend_deployment Only prepare the slot for Frontend bool false no
location Azure region string "uksouth" no
prefix Prefix for resource names string "s213" no
product Name of the project string "Find Education and Training" no
sql_admin_password The administrator password of the SQL logical server. string null no
sql_admin_username The administrator username of the SQL logical server. string "azureadmin" no
support_alert_email Alert support email or group string n/a yes

Outputs

Name Description
admin_url n/a
api_url n/a
azurerm_network_security_group Network security group name
azurerm_private_dns_zone Private DNS Zone name
azurerm_private_dns_zone_virtual_network_link Private DNS Zone Virtual Network Link name
azurerm_subnet Subnet name
azurerm_virtual_network Virtual network name
frontend_url n/a
mssql_database_name The name of the SQL Database
mssql_server_fqdn The fully qualified domain name of the SQL Server
mssql_server_name The name of the SQL Server