|
|
###############################################################################
|
|
|
# Greenfield MDP — Production Environment — Root Module
|
|
|
# Wires all child modules together for the production deployment.
|
|
|
###############################################################################
|
|
|
|
|
|
# =============================================================================
|
|
|
# Phase 0 / Day 1 — Networking
|
|
|
# =============================================================================
|
|
|
|
|
|
module "networking" {
|
|
|
source = "../../modules/networking"
|
|
|
|
|
|
location = var.location
|
|
|
environment = var.environment
|
|
|
project = var.project
|
|
|
|
|
|
# VNet CIDRs
|
|
|
vnet_cidr = var.vnet_cidr
|
|
|
dbx_host_subnet_cidr = var.dbx_host_subnet_cidr
|
|
|
dbx_container_subnet_cidr = var.dbx_container_subnet_cidr
|
|
|
private_endpoints_subnet_cidr = var.private_endpoints_subnet_cidr
|
|
|
transit_vnet_cidr = var.transit_vnet_cidr
|
|
|
transit_subnet_cidr = var.transit_subnet_cidr
|
|
|
|
|
|
# Hub peering (set in terraform.tfvars when Greenfield hub VNet is available)
|
|
|
hub_vnet_id = var.hub_vnet_id
|
|
|
|
|
|
tags = var.tags
|
|
|
}
|
|
|
|
|
|
# =============================================================================
|
|
|
# Phase 0 / Day 3–5 — Storage (ADLS Gen2)
|
|
|
# Uncomment when modules/storage is ready.
|
|
|
# =============================================================================
|
|
|
|
|
|
# module "storage" {
|
|
|
# source = "../../modules/storage"
|
|
|
#
|
|
|
# location = var.location
|
|
|
# environment = var.environment
|
|
|
# project = var.project
|
|
|
# resource_group_name = module.networking.rg_storage_name
|
|
|
# subnet_pe_id = module.networking.subnet_private_endpoints_id
|
|
|
# dns_zone_dfs_id = module.networking.dns_zone_dfs_id
|
|
|
# replication_type = var.adls_replication_type
|
|
|
# tags = var.tags
|
|
|
# }
|
|
|
|
|
|
# =============================================================================
|
|
|
# Phase 0 / Day 3 — Key Vault
|
|
|
# Uncomment when modules/keyvault is ready.
|
|
|
# =============================================================================
|
|
|
|
|
|
# module "keyvault" {
|
|
|
# source = "../../modules/keyvault"
|
|
|
#
|
|
|
# location = var.location
|
|
|
# environment = var.environment
|
|
|
# project = var.project
|
|
|
# resource_group_name = module.networking.rg_keyvault_name
|
|
|
# subnet_pe_id = module.networking.subnet_private_endpoints_id
|
|
|
# dns_zone_vault_id = module.networking.dns_zone_vault_id
|
|
|
# tags = var.tags
|
|
|
# }
|
|
|
|
|
|
# =============================================================================
|
|
|
# Phase 0 / Day 4–6 — Identity (Managed Identities, Role Assignments)
|
|
|
# Uncomment when modules/identity is ready.
|
|
|
# =============================================================================
|
|
|
|
|
|
# module "identity" {
|
|
|
# source = "../../modules/identity"
|
|
|
#
|
|
|
# location = var.location
|
|
|
# environment = var.environment
|
|
|
# project = var.project
|
|
|
# rg_databricks_name = module.networking.rg_databricks_name
|
|
|
# rg_storage_name = module.networking.rg_storage_name
|
|
|
# rg_governance_name = module.networking.rg_governance_name
|
|
|
# storage_account_id = module.storage.adls_id
|
|
|
# tags = var.tags
|
|
|
# }
|
|
|
|
|
|
# =============================================================================
|
|
|
# Phase 0 / Day 6–8 — Databricks Workspace
|
|
|
# Uncomment when modules/databricks-workspace is ready.
|
|
|
# =============================================================================
|
|
|
|
|
|
# module "databricks_workspace" {
|
|
|
# source = "../../modules/databricks-workspace"
|
|
|
#
|
|
|
# location = var.location
|
|
|
# environment = var.environment
|
|
|
# project = var.project
|
|
|
# resource_group_name = module.networking.rg_databricks_name
|
|
|
# vnet_id = module.networking.vnet_main_id
|
|
|
# subnet_host_id = module.networking.subnet_dbx_host_id
|
|
|
# subnet_host_name = module.networking.subnet_dbx_host_name
|
|
|
# subnet_container_id = module.networking.subnet_dbx_container_id
|
|
|
# subnet_container_name = module.networking.subnet_dbx_container_name
|
|
|
# subnet_pe_id = module.networking.subnet_private_endpoints_id
|
|
|
# subnet_transit_id = module.networking.subnet_transit_id
|
|
|
# nsg_id = module.networking.nsg_dbx_id
|
|
|
# dns_zone_databricks_id = module.networking.dns_zone_databricks_id
|
|
|
# dns_zone_databricks_name = module.networking.dns_zone_databricks_name
|
|
|
# rg_network_name = module.networking.rg_network_name
|
|
|
# vnet_transit_id = module.networking.vnet_transit_id
|
|
|
# tags = var.tags
|
|
|
# }
|
|
|
|
|
|
# =============================================================================
|
|
|
# Phase 0 / Day 11–13 — Unity Catalog
|
|
|
# Uncomment when modules/unity-catalog is ready.
|
|
|
# =============================================================================
|
|
|
|
|
|
# module "unity_catalog" {
|
|
|
# source = "../../modules/unity-catalog"
|
|
|
#
|
|
|
# providers = {
|
|
|
# databricks.account = databricks.account
|
|
|
# databricks.workspace = databricks.workspace
|
|
|
# }
|
|
|
#
|
|
|
# location = var.location
|
|
|
# environment = var.environment
|
|
|
# project = var.project
|
|
|
# databricks_account_id = var.databricks_account_id
|
|
|
# workspace_id = module.databricks_workspace.workspace_id
|
|
|
# storage_account_name = module.storage.adls_name
|
|
|
# catalog_names = var.uc_catalog_names
|
|
|
# schemas = var.uc_schemas
|
|
|
# tags = var.tags
|
|
|
# }
|
|
|
|
|
|
# =============================================================================
|
|
|
# Phase 0 / Day 3 — Monitoring (Log Analytics, Diagnostic Settings)
|
|
|
# Uncomment when modules/monitoring is ready.
|
|
|
# =============================================================================
|
|
|
|
|
|
# module "monitoring" {
|
|
|
# source = "../../modules/monitoring"
|
|
|
#
|
|
|
# location = var.location
|
|
|
# environment = var.environment
|
|
|
# project = var.project
|
|
|
# resource_group_name = module.networking.rg_monitoring_name
|
|
|
# tags = var.tags
|
|
|
# }
|