alz/local/main.tf (60 lines of code) (raw):
module "resource_names" {
source = "../../modules/resource_names"
azure_location = var.bootstrap_location
environment_name = var.environment_name
service_name = var.service_name
postfix_number = var.postfix_number
resource_names = merge(var.resource_names, local.custom_role_definitions_bicep_names, local.custom_role_definitions_terraform_names)
}
module "architecture_definition" {
count = local.has_architecture_definition ? 1 : 0
source = "../../modules/template_architecture_definition"
starter_module_folder_path = local.starter_root_module_folder_path
architecture_definition_name = local.architecture_definition_name
architecture_definition_template_path = var.architecture_definition_template_path
architecture_definition_override_path = var.architecture_definition_override_path
apply_alz_archetypes_via_architecture_definition_template = var.apply_alz_archetypes_via_architecture_definition_template
}
resource "local_file" "architecture_definition_file" {
count = local.has_architecture_definition ? 1 : 0
content = module.architecture_definition[0].architecture_definition_json
filename = local.architecture_definition_file_destination
}
module "files" {
source = "../../modules/files"
starter_module_folder_path = local.starter_module_folder_path
additional_files = var.additional_files
configuration_file_path = var.configuration_file_path
built_in_configuration_file_names = var.built_in_configuration_file_names
additional_folders_path = var.additional_folders_path
}
module "azure" {
source = "../../modules/azure"
count = var.create_bootstrap_resources_in_azure ? 1 : 0
user_assigned_managed_identities = local.managed_identities
federated_credentials = local.federated_credentials
resource_group_identity_name = local.resource_names.resource_group_identity
resource_group_state_name = local.resource_names.resource_group_state
create_storage_account = var.iac_type == local.iac_terraform
storage_account_name = local.resource_names.storage_account
storage_container_name = local.resource_names.storage_container
azure_location = var.bootstrap_location
target_subscriptions = local.target_subscriptions
root_parent_management_group_id = local.root_parent_management_group_id
storage_account_replication_type = var.storage_account_replication_type
use_self_hosted_agents = false
use_private_networking = false
custom_role_definitions = var.iac_type == "terraform" ? local.custom_role_definitions_terraform : local.custom_role_definitions_bicep
role_assignments = var.iac_type == "terraform" ? var.role_assignments_terraform : var.role_assignments_bicep
additional_role_assignment_principal_ids = var.grant_permissions_to_current_user ? { current_user = data.azurerm_client_config.current.object_id } : {}
}
resource "local_file" "alz" {
for_each = local.final_module_files
content = each.value.content
filename = "${local.target_directory}/${each.key}"
}
resource "local_file" "command" {
count = var.iac_type == "terraform" ? 1 : 0
content = local.command_final
filename = "${local.target_directory}/scripts/deploy-local.ps1"
}