Shared Infrastructure¶
Shared Modules¶
This repository contains shared Terraform modules that other projects can use. It provides for a consistent setup that conforms to the CMG application architecture and best practices.
Example:¶
The following example shows how to use the azure-diagnostics module, which creates diagnostic settings for each resource in a resource group.
module "diag" {
source = "git::ssh://git@ssh.dev.azure.com/v3/cmgfidev/DevOps/shared-infrastructure//modules/azure-diagnostics?ref=v1.0.0"
log_analytics_id = var.workspace_id
resource_group_to_scan = azurerm_resource_group.this.name
}
In the above example, the source's ref parameter (v1.0.0) is a git tag pointing to a specific commit (link to all git tags).
Using the
refparameter is optional but highly encouraged, as it explicitly sets the version of the module. Breaking changes are discouraged but should be expected as new features are added to a given module.
Documentation Index¶
| Area | Documentation |
|---|---|
| modules/azure-appservice | Azure App Service Module |
| modules/azure-appservice/appplan | Azure App Service Plan Module |
| modules/azure-appservice/functionapp | Azure App Service FunctionApp Module |
| modules/azure-appservice/webapp | Azure App Service WebApp Module |
| modules/azure-diagnostics | Azure Diagnostics Module |
| modules/azure-frontdoor | Azure FrontDoor Module |
| modules/azure-keyvault | Azure KeyVault Module |
| modules/azure-keyvault-secret | Azure KeyVault Secret Module |
| modules/azure-monitor | Azure Monitor Module |
| modules/azure-monitor/action-group | Azure Monitor Action Group Module |
| modules/azure-monitor/metric-alert | Azure Monitor Metric Alert Module |
| modules/azure-monitor/query-alert | Azure Monitor Query Alert Module |
| modules/azure-monitor/smart-detector-alert | Azure Monitor Smart Detector Alert Module |
| modules/azure-mssql | Azure MSSQL Module |
| modules/azure-networking | Azure Networking Module |
| modules/azure-servicebus | Azure Service Bus Module |
| modules/azuread-objects | Azure AD Objects Module |
| modules/azuread-objects/Data | Azure AD Data Module |
| modules/azuread-objects/Groups | Azure AD Groups Module |
| modules/network-rules | Network Rules Module |
| shared-resources | Shared Resources |
Module Hierarchy¶
graph LR;
root["Modules"]
root ==> modules_azure_appservice["azure-appservice"]
subgraph modules_azure_appservice_group["Azure Appservice"]
modules_azure_appservice --> modules_azure_appservice_appplan["appplan"]
modules_azure_appservice --> modules_azure_appservice_functionapp["functionapp"]
modules_azure_appservice --> modules_azure_appservice_webapp["webapp"]
end
root ==> modules_azure_diagnostics["azure-diagnostics"]
root ==> modules_azure_frontdoor["azure-frontdoor"]
root ==> modules_azure_keyvault["azure-keyvault"]
root ==> modules_azure_keyvault_secret["azure-keyvault-secret"]
root ==> modules_azure_monitor["azure-monitor"]
subgraph modules_azure_monitor_group["Azure Monitor"]
modules_azure_monitor --> modules_azure_monitor_action_group["action-group"]
modules_azure_monitor --> modules_azure_monitor_metric_alert["metric-alert"]
modules_azure_monitor --> modules_azure_monitor_query_alert["query-alert"]
modules_azure_monitor --> modules_azure_monitor_smart_detector_alert["smart-detector-alert"]
end
root ==> modules_azure_mssql["azure-mssql"]
root ==> modules_azure_networking["azure-networking"]
root ==> modules_azure_servicebus["azure-servicebus"]
root ==> modules_azuread_objects["azuread-objects"]
subgraph modules_azuread_objects_group["Azuread Objects"]
modules_azuread_objects --> modules_azuread_objects_data["Data"]
modules_azuread_objects --> modules_azuread_objects_groups["Groups"]
end
root ==> modules_network_rules["network-rules"]
root ==> shared_resources["shared-resources"]