deploy/terraform/terraform-units/modules/sap_landscape/anf.tf (275 lines of code) (raw):

# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. #######################################4#######################################8 # # # Azure NetApp Account # # # #######################################4#######################################8 resource "azurerm_netapp_account" "workload_netapp_account" { provider = azurerm.main count = var.ANF_settings.use && length(var.ANF_settings.arm_id) == 0 ? 1 : 0 name = format("%s%s%s%s", var.naming.resource_prefixes.netapp_account, local.prefix, var.naming.separator, local.resource_suffixes.netapp_account ) resource_group_name = local.resource_group_exists ? ( data.azurerm_resource_group.resource_group[0].name) : ( azurerm_resource_group.resource_group[0].name ) location = local.resource_group_exists ? ( data.azurerm_resource_group.resource_group[0].location) : ( azurerm_resource_group.resource_group[0].location ) tags = var.tags } data "azurerm_netapp_account" "workload_netapp_account" { provider = azurerm.main count = var.ANF_settings.use && length(var.ANF_settings.arm_id) > 0 ? 1 : 0 name = split("/", var.ANF_settings.arm_id)[8] resource_group_name = split("/", var.ANF_settings.arm_id)[4] } resource "azurerm_netapp_pool" "workload_netapp_pool" { provider = azurerm.main count = var.ANF_settings.use ? ( var.ANF_settings.use_existing_pool ? ( 0) : ( 1 )) : ( 0 ) name = length(var.ANF_settings.pool_name) > 0 ? ( var.ANF_settings.pool_name) : ( format("%s%s%s%s", var.naming.resource_prefixes.netapp_pool, local.prefix, var.naming.separator, local.resource_suffixes.netapp_pool ) ) account_name = var.ANF_settings.use && length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].name) : ( azurerm_netapp_account.workload_netapp_account[0].name ) location = var.ANF_settings.use && length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].location) : ( azurerm_netapp_account.workload_netapp_account[0].location ) resource_group_name = var.ANF_settings.use && length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].resource_group_name) : ( azurerm_netapp_account.workload_netapp_account[0].resource_group_name ) service_level = var.ANF_settings.service_level size_in_tb = var.ANF_settings.size_in_tb qos_type = var.ANF_settings.qos_type } data "azurerm_netapp_pool" "workload_netapp_pool" { provider = azurerm.main count = var.ANF_settings.use ? ( var.ANF_settings.use_existing_pool ? ( 1) : ( 0 )) : ( 0 ) name = length(var.ANF_settings.pool_name) > 0 ? ( var.ANF_settings.pool_name) : ( format("%s%s%s%s", var.naming.resource_prefixes.netapp_pool, local.prefix, var.naming.separator, local.resource_suffixes.netapp_pool ) ) resource_group_name = split("/", var.ANF_settings.arm_id)[4] account_name = var.ANF_settings.use && length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].name) : ( azurerm_netapp_account.workload_netapp_account[0].name ) } resource "azurerm_netapp_volume" "transport" { provider = azurerm.main count = var.create_transport_storage && var.NFS_provider == "ANF" && !var.use_AFS_for_shared_storage ? ( var.ANF_settings.use_existing_transport_volume ? ( 0) : ( 1 ) ) : ( 0 ) name = format("%s%s%s%s", var.naming.resource_prefixes.transport_volume, local.prefix, var.naming.separator, local.resource_suffixes.transport_volume ) resource_group_name = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].resource_group_name) : ( azurerm_netapp_account.workload_netapp_account[0].resource_group_name ) location = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].location) : ( azurerm_netapp_account.workload_netapp_account[0].location ) account_name = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].name) : ( azurerm_netapp_account.workload_netapp_account[0].name ) pool_name = var.ANF_settings.use_existing_pool ? ( data.azurerm_netapp_pool.workload_netapp_pool[0].name ) : ( azurerm_netapp_pool.workload_netapp_pool[0].name ) zone = length(var.ANF_settings.transport_volume_zone) > 0 ? ( var.ANF_settings.transport_volume_zone ) : ( null ) throughput_in_mibps = var.ANF_settings.use_existing_pool ? ( var.ANF_settings.transport_volume_throughput ) : ( azurerm_netapp_pool.workload_netapp_pool[0].qos_type == "Auto" ? null : var.ANF_settings.transport_volume_throughput ) volume_path = format("%s%s%s", var.naming.resource_prefixes.transport_volume, var.infrastructure.environment, local.resource_suffixes.transport_volume ) service_level = var.ANF_settings.service_level subnet_id = local.ANF_subnet_existing ? var.infrastructure.virtual_networks.sap.subnet_anf.arm_id : azurerm_subnet.anf[0].id storage_quota_in_gb = var.ANF_settings.transport_volume_size network_features = "Standard" protocols = ["NFSv4.1"] tags = var.tags export_policy_rule { allowed_clients = ["0.0.0.0/0"] protocols_enabled = ["NFSv4.1"] rule_index = 1 unix_read_only = false unix_read_write = true root_access_enabled = true } } data "azurerm_netapp_volume" "transport" { provider = azurerm.main count = var.create_transport_storage && var.NFS_provider == "ANF" ? ( var.ANF_settings.use_existing_transport_volume ? ( 1) : ( 0 ) ) : ( 0 ) resource_group_name = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].resource_group_name) : ( azurerm_netapp_account.workload_netapp_account[0].resource_group_name ) account_name = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].name) : ( azurerm_netapp_account.workload_netapp_account[0].name ) pool_name = var.ANF_settings.use_existing_pool ? ( data.azurerm_netapp_pool.workload_netapp_pool[0].name ) : ( azurerm_netapp_pool.workload_netapp_pool[0].name ) name = length(var.ANF_settings.transport_volume_name) > 0 ? ( var.ANF_settings.transport_volume_name ) : ( format("%s%s%s", var.naming.resource_prefixes.transport_volume, var.infrastructure.environment, local.resource_suffixes.transport_volume ) ) } ################################################################################ # # # Install media # # # ################################################################################ resource "azurerm_netapp_volume" "install" { provider = azurerm.main count = var.NFS_provider == "ANF" && !var.use_AFS_for_shared_storage ? ( var.ANF_settings.use_existing_install_volume ? ( 0) : ( 1 ) ) : ( 0 ) name = format("%s%s%s%s", var.naming.resource_prefixes.install_volume, local.prefix, var.naming.separator, local.resource_suffixes.install_volume ) resource_group_name = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].resource_group_name) : ( azurerm_netapp_account.workload_netapp_account[0].resource_group_name ) location = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].location) : ( azurerm_netapp_account.workload_netapp_account[0].location ) account_name = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].name) : ( azurerm_netapp_account.workload_netapp_account[0].name ) pool_name = var.ANF_settings.use_existing_pool ? ( data.azurerm_netapp_pool.workload_netapp_pool[0].name ) : ( azurerm_netapp_pool.workload_netapp_pool[0].name ) zone = length(var.ANF_settings.install_volume_zone) > 0 ? ( var.ANF_settings.install_volume_zone ) : ( null ) throughput_in_mibps = var.ANF_settings.use_existing_pool ? ( var.ANF_settings.install_volume_throughput ) : ( azurerm_netapp_pool.workload_netapp_pool[0].qos_type == "Auto" ? null : var.ANF_settings.install_volume_throughput ) volume_path = format("%s%s%s", var.naming.resource_prefixes.install_volume, var.infrastructure.environment, local.resource_suffixes.install_volume ) service_level = var.ANF_settings.service_level subnet_id = local.ANF_subnet_existing ? var.infrastructure.virtual_networks.sap.subnet_anf.arm_id : azurerm_subnet.anf[0].id protocols = ["NFSv4.1"] network_features = "Standard" tags = var.tags export_policy_rule { allowed_clients = ["0.0.0.0/0"] protocols_enabled = ["NFSv4.1"] rule_index = 1 unix_read_only = false unix_read_write = true root_access_enabled = true } storage_quota_in_gb = var.ANF_settings.install_volume_size } data "azurerm_netapp_volume" "install" { provider = azurerm.main count = var.NFS_provider == "ANF" ? ( var.ANF_settings.use_existing_install_volume ? ( 1) : ( 0 ) ) : ( 0 ) resource_group_name = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].resource_group_name) : ( azurerm_netapp_account.workload_netapp_account[0].resource_group_name ) account_name = length(var.ANF_settings.arm_id) > 0 ? ( data.azurerm_netapp_account.workload_netapp_account[0].name) : ( azurerm_netapp_account.workload_netapp_account[0].name ) pool_name = var.ANF_settings.use_existing_pool ? ( data.azurerm_netapp_pool.workload_netapp_pool[0].name ) : ( azurerm_netapp_pool.workload_netapp_pool[0].name ) name = length(var.ANF_settings.install_volume_name) > 0 ? ( var.ANF_settings.install_volume_name ) : ( format("%s%s%s", var.naming.resource_prefixes.transport_volume, var.infrastructure.environment, local.resource_suffixes.transport_volume ) ) }