deploy/terraform/run/sap_system/transform.tf (532 lines of code) (raw):
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
locals {
enable_app_tier_deployment = var.enable_app_tier_deployment && try(var.application_tier.enable_deployment, true)
temp_infrastructure = {
environment = coalesce(var.environment, try(var.infrastructure.environment, ""))
region = lower(coalesce(var.location, try(var.infrastructure.region, "")))
codename = try(var.codename, try(var.infrastructure.codename, ""))
tags = try(merge(var.resourcegroup_tags, try(var.infrastructure.tags, {})), {})
use_app_proximityplacementgroups = var.use_app_proximityplacementgroups
deploy_monitoring_extension = var.deploy_monitoring_extension
deploy_defender_extension = var.deploy_defender_extension
patch_mode = var.patch_mode
patch_assessment_mode = var.patch_assessment_mode
shared_access_key_enabled = var.shared_access_key_enabled
shared_access_key_enabled_nfs = var.shared_access_key_enabled_nfs
encryption_at_host_enabled = var.encryption_at_host_enabled
}
resource_group = {
name = var.resourcegroup_name
arm_id = var.resourcegroup_arm_id
}
resource_group_defined = (length(local.resource_group.name) + length(local.resource_group.arm_id) ) > 0
ppg = {
arm_ids = distinct(var.proximityplacementgroup_arm_ids)
names = distinct(var.proximityplacementgroup_names)
}
ppg_defined = (length(local.ppg.names) + length(local.ppg.arm_ids)) > 0
app_ppg = {
arm_ids = distinct(var.app_proximityplacementgroup_arm_ids)
names = distinct(var.app_proximityplacementgroup_names)
}
app_ppg_defined = var.use_app_proximityplacementgroups ? (length(local.app_ppg.names) + length(local.app_ppg.arm_ids)) > 0 : false
deploy_anchor_vm = var.deploy_anchor_vm || length(try(var.infrastructure.anchor_vms, {})) > 0
anchor_vms = local.deploy_anchor_vm ? (
{
deploy = var.deploy_anchor_vm
use_DHCP = var.anchor_vm_use_DHCP
accelerated_networking = var.anchor_vm_accelerated_networking
sku = var.anchor_vm_sku
os = var.anchor_vm_image
authentication = {
type = var.anchor_vm_authentication_type
username = var.anchor_vm_authentication_username
}
nic_ips = var.anchor_vm_nic_ips
}
) : (
null
)
authentication_temp = { }
options_temp = {
enable_secure_transfer = true
resource_offset = var.resource_offset
nsg_asg_with_vnet = var.nsg_asg_with_vnet
legacy_nic_order = var.legacy_nic_order
}
key_vault_temp = { }
db_authentication = {
type = var.database_vm_authentication_type
username = var.automation_username
}
db_authentication_defined = (length(local.db_authentication.type) + length(local.db_authentication.username)) > 3
avset_arm_ids = var.database_vm_avset_arm_ids
db_avset_arm_ids_defined = length(local.avset_arm_ids) > 0
frontend_ips = var.database_loadbalancer_ips
db_tags = var.database_tags
databases_temp = {
database_cluster_type = var.database_cluster_type
database_server_count = var.database_high_availability ? 2 * var.database_server_count : var.database_server_count
database_vm_sku = var.database_vm_sku
db_sizing_key = coalesce(var.db_sizing_dictionary_key, var.database_size)
deploy_v1_monitoring_extension = var.deploy_v1_monitoring_extension
dual_nics = var.database_dual_nics
high_availability = var.database_high_availability
database_cluster_disk_lun = var.database_cluster_disk_lun
database_cluster_disk_size = var.database_cluster_disk_size
database_cluster_disk_type = var.database_cluster_disk_type
observer_vm_ips = var.observer_nic_ips
platform = var.database_platform
use_ANF = var.database_HANA_use_scaleout_scenario || try(var.databases[0].use_ANF, false)
use_avset = var.database_server_count == 0 || var.use_scalesets_for_deployment || length(var.database_vm_zones) > 0 || var.database_platform == "NONE" ? (
false) : (
var.database_use_avset
)
use_DHCP = var.database_vm_use_DHCP || try(var.databases[0].use_DHCP, false)
use_ppg = var.database_server_count == 0 || var.use_scalesets_for_deployment || var.database_platform == "NONE" ? (
false) : (
var.database_use_ppg
)
user_assigned_identity_id = var.user_assigned_identity_id
scale_out = var.database_HANA_use_scaleout_scenario
stand_by_node_count = var.stand_by_node_count
zones = var.database_vm_zones
database_hana_use_saphanasr_angi = upper(var.database_platform) == "HANA" ? (
var.database_high_availability ? (
var.use_sles_saphanasr_angi
) : (
false
)
) : (
false
)
}
db_os = {
source_image_id = try(var.database_vm_image.source_image_id, "")
publisher = try(var.database_vm_image.publisher, "")
offer = try(var.database_vm_image.offer, "")
sku = try(var.database_vm_image.sku, "")
version = try(var.database_vm_image.version, "")
type = try(var.database_vm_image.type, "marketplace")
# os_type = length(var.database_vm_image.source_image_id) == 0 ? (
# upper(var.database_vm_image.publisher) == "MICROSOFTWINDOWSSERVER") ? "WINDOWS" : try(var.database_vm_image.os_type, "LINUX)") : (
# length(var.database_vm_image.os_type) == 0 ? "LINUX" : var.database_vm_image.os_type
# )
os_type = (length(var.database_vm_image.source_image_id) == 0 # - if true
) ? ( # - then
(upper(var.database_vm_image.publisher) == "MICROSOFTWINDOWSSERVER" # -- if true
) ? ( # -- then
"WINDOWS"
) : ( # -- else
(length(var.database_vm_image.os_type) == 0 # --- if true
) ? ( # --- then
"LINUX"
) : ( # --- else
try(var.database_vm_image.os_type, "LINUX")
) # --- end if
) # -- end if
) : ( # - else
(length(var.database_vm_image.os_type) == 0 # -- if true
) ? ( # -- then
"LINUX"
) : ( # -- else
var.database_vm_image.os_type
) # -- end if
) # - end if
}
db_os_specified = (length(local.db_os.source_image_id) + length(local.db_os.publisher)) > 0
db_sid_specified = (length(var.database_sid) + length(try(var.databases[0].sid, ""))) > 0
instance = {
sid = upper(try(coalesce(
var.database_sid,
try(var.databases[0].sid, "")),
upper(var.database_platform) == "HANA" ? (
"HDB"
) : (
substr(var.database_platform, 0, 3))
))
number = upper(local.databases_temp.platform) == "HANA" ? (
var.database_instance_number
) : (
"00"
)
}
app_authentication = {
type = var.app_tier_authentication_type
username = var.automation_username
}
app_authentication_defined = (length(local.app_authentication.type) + length(local.app_authentication.username)) > 3
app_zones_temp = var.application_server_count > 0 ? distinct(var.application_server_zones) : []
scs_zones_temp = var.scs_server_count > 0 ? distinct(var.scs_server_zones) : []
web_zones_temp = var.webdispatcher_server_count > 0 ? distinct(var.webdispatcher_server_zones) : []
application_temp = {
sid = var.sid
enable_deployment = local.enable_app_tier_deployment
use_DHCP = var.app_tier_use_DHCP
dual_nics = var.app_tier_dual_nics
vm_sizing_dictionary_key = coalesce(var.app_tier_sizing_dictionary_key, "Optimized")
app_instance_number = coalesce(var.app_instance_number, "00")
application_server_count = local.enable_app_tier_deployment ? (
var.application_server_count
) : (
0
)
app_sku = var.application_server_sku
app_use_ppg = var.application_server_count == 0 || var.use_scalesets_for_deployment || !local.enable_app_tier_deployment ? (
false) : (
var.application_server_use_ppg
)
app_use_avset = var.application_server_count == 0 || var.use_scalesets_for_deployment || !local.enable_app_tier_deployment ? (
false) : (
var.application_server_use_avset
)
avset_arm_ids = var.application_server_vm_avset_arm_ids
avset_arm_ids_count = length(var.application_server_vm_avset_arm_ids)
app_zone_count = length(local.app_zones_temp)
scs_server_count = local.enable_app_tier_deployment ? (
var.scs_server_count
) : (
0
)
scs_high_availability = local.enable_app_tier_deployment ? (
var.scs_high_availability
) : (
false
)
scs_cluster_type = var.scs_cluster_type
scs_instance_number = coalesce(var.scs_instance_number, "00")
ers_instance_number = coalesce(var.ers_instance_number, "02")
scs_sku = var.scs_server_sku
scs_use_ppg = var.scs_server_count > 0 ? var.use_scalesets_for_deployment ? (
false) : (
var.scs_server_use_ppg
) : false
scs_use_avset = var.scs_server_count == 0 || var.use_scalesets_for_deployment || !local.enable_app_tier_deployment ? (
false) : (
var.scs_server_use_avset
)
scs_zone_count = length(local.scs_zones_temp)
scs_cluster_disk_lun = var.scs_cluster_disk_lun
scs_cluster_disk_size = var.scs_cluster_disk_size
scs_cluster_disk_type = var.scs_cluster_disk_type
webdispatcher_count = local.enable_app_tier_deployment ? (
var.webdispatcher_server_count
) : (
0
)
web_instance_number = var.web_instance_number
web_sid = upper(var.web_sid)
web_sku = try(coalesce(var.webdispatcher_server_sku, var.application_tier.web_sku), "")
web_use_ppg = (var.webdispatcher_server_count) > 0 ? var.use_scalesets_for_deployment ? (
false) : (
var.webdispatcher_server_use_ppg
) : false
web_use_avset = var.webdispatcher_server_count == 0 || var.use_scalesets_for_deployment || length(var.webdispatcher_server_zones) > 0 || !local.enable_app_tier_deployment ? (
false) : (
var.webdispatcher_server_use_avset
)
web_zone_count = length(local.web_zones_temp)
deploy_v1_monitoring_extension = var.deploy_v1_monitoring_extension
user_assigned_identity_id = var.user_assigned_identity_id
}
app_tags = var.application_server_tags
scs_tags = var.scs_server_tags
web_tags = var.webdispatcher_server_tags
app_os = {
source_image_id = try(var.application_server_image.source_image_id, "")
publisher = try(var.application_server_image.publisher, "SUSE")
offer = try(var.application_server_image.offer, "sles-sap-15-sp5")
sku = try(var.application_server_image.sku, "gen2")
version = try(var.application_server_image.version, "latest")
type = try(var.database_vm_image.type, "marketplace")
# os_type = length(var.application_server_image.source_image_id) == 0 ? (
# upper(var.application_server_image.publisher) == "MICROSOFTWINDOWSSERVER") ? "WINDOWS" : try(var.application_server_image.os_type, "LINUX") : (
# length(var.application_server_image.os_type) == 0 ? "LINUX" : var.application_server_image.os_type
# )
os_type = (length(var.application_server_image.source_image_id) == 0 # - if true
) ? ( # - then
(upper(var.application_server_image.publisher) == "MICROSOFTWINDOWSSERVER" # -- if true
) ? ( # -- then
"WINDOWS"
) : ( # -- else
(length(var.application_server_image.os_type) == 0 # --- if true
) ? ( # --- then
"LINUX"
) : ( # --- else
try(var.application_server_image.os_type, "LINUX")
) # --- end if
) # -- end if
) : ( # - else
(length(var.application_server_image.os_type) == 0 # -- if true
) ? ( # -- then
"LINUX"
) : ( # -- else
var.application_server_image.os_type
) # -- end if
) # - end if
}
app_os_specified = (length(local.app_os.source_image_id) + length(local.app_os.publisher)) > 0
scs_os = {
os_type = coalesce(var.scs_server_image.os_type, var.application_server_image.os_type, "LINUX")
source_image_id = trimspace(coalesce(var.scs_server_image.source_image_id, var.application_server_image.source_image_id, " "))
publisher = coalesce(var.scs_server_image.publisher, var.application_server_image.publisher, "SUSE")
offer = coalesce(var.scs_server_image.offer, var.application_server_image.offer, "sles-sap-15-sp5")
sku = coalesce(var.scs_server_image.sku, var.application_server_image.sku, "gen2")
version = coalesce(var.scs_server_image.version, var.application_server_image.version, "latest")
type = coalesce(var.database_vm_image.type, "marketplace")
}
scs_os_specified = (length(local.scs_os.source_image_id) + length(local.scs_os.publisher)) > 0
validated_use_simple_mount = var.use_simple_mount ? (
upper(local.scs_os.publisher) != "SUSE" || !(var.scs_high_availability) ? (
false) : (
contains(["sles-sap-15-sp3", "sles-sap-15-sp4", "sles-sap-15-sp5", "sles-sap-15-sp6"], local.scs_os.offer) ? (
var.use_simple_mount) : (
false
)
)) : (
false
)
web_os = {
os_type = coalesce(var.webdispatcher_server_image.os_type, var.application_server_image.os_type, "LINUX")
source_image_id = coalesce(var.webdispatcher_server_image.source_image_id, var.application_server_image.source_image_id, " ")
publisher = coalesce(var.webdispatcher_server_image.publisher, var.application_server_image.publisher, "SUSE")
offer = coalesce(var.webdispatcher_server_image.offer, var.application_server_image.offer, "sles-sap-15-sp5")
sku = coalesce(var.webdispatcher_server_image.sku, var.application_server_image.sku, "gen2")
version = coalesce(var.webdispatcher_server_image.version, var.application_server_image.version, "latest")
type = coalesce(var.database_vm_image.type, "marketplace")
}
web_os_specified = (length(local.web_os.source_image_id) + length(local.web_os.publisher)) > 0
virtual_networks = { }
sap = {
logical_name = var.network_logical_name
}
app_nic_ips = distinct(var.application_server_app_nic_ips)
app_nic_secondary_ips = distinct(var.application_server_app_nic_ips)
app_admin_nic_ips = distinct(var.application_server_admin_nic_ips)
scs_nic_ips = distinct(var.scs_server_app_nic_ips)
scs_admin_nic_ips = distinct(var.scs_server_admin_nic_ips)
scs_server_loadbalancer_ips = distinct(var.scs_server_loadbalancer_ips)
web_nic_ips = concat(var.webdispatcher_server_app_nic_ips)
web_admin_nic_ips = concat(var.webdispatcher_server_admin_nic_ips)
webdispatcher_loadbalancer_ips = concat(var.webdispatcher_server_loadbalancer_ips)
subnet_admin_arm_id = try(coalesce(var.admin_subnet_arm_id, data.terraform_remote_state.landscape.outputs.admin_subnet_id), "")
subnet_admin_nsg_arm_id = try(coalesce(var.admin_subnet_nsg_arm_id, data.terraform_remote_state.landscape.outputs.admin_nsg_id), "")
subnet_admin = {
"name" = length(local.subnet_admin_arm_id) > 0 ? (
split("/",local.subnet_admin_arm_id)[10]) : (
var.admin_subnet_name),
"arm_id" = local.subnet_admin_arm_id
"prefix" = length(local.subnet_admin_arm_id) > 0 ? "" : var.admin_subnet_address_prefix
"defined" = length(var.admin_subnet_address_prefix) > 0
"nsg" = {
"name" = length(local.subnet_admin_nsg_arm_id) > 0 ? (
split("/",local.subnet_admin_nsg_arm_id)[8]) : (
var.admin_subnet_nsg_name),
"arm_id" = local.subnet_admin_nsg_arm_id
}
}
subnet_db_arm_id = try(coalesce(var.db_subnet_arm_id, data.terraform_remote_state.landscape.outputs.db_subnet_id), "")
subnet_db_nsg_arm_id = try(coalesce(var.db_subnet_nsg_arm_id, data.terraform_remote_state.landscape.outputs.db_nsg_id), "")
subnet_db = {
"name" = length(local.subnet_db_arm_id) > 0 ? (
split("/",local.subnet_db_arm_id)[10]) : (
var.db_subnet_name),
"arm_id" = local.subnet_db_arm_id
"prefix" = length(local.subnet_db_arm_id) > 0 ? "" : var.db_subnet_address_prefix
"defined" = length(var.db_subnet_address_prefix) > 0
"nsg" = {
"name" = length(local.subnet_db_nsg_arm_id) > 0 ? (
split("/",local.subnet_db_nsg_arm_id)[8]) : (
var.db_subnet_nsg_name),
"arm_id" = local.subnet_db_nsg_arm_id
}
}
subnet_app_arm_id = try(coalesce(var.app_subnet_arm_id, data.terraform_remote_state.landscape.outputs.app_subnet_id), "")
subnet_app_nsg_arm_id = try(coalesce(var.app_subnet_nsg_arm_id, data.terraform_remote_state.landscape.outputs.app_nsg_id), "")
subnet_app = {
"name" = length(local.subnet_app_arm_id) > 0 ? (
split("/",local.subnet_app_arm_id)[10]) : (
var.app_subnet_name),
"arm_id" = local.subnet_app_arm_id
"prefix" = length(local.subnet_app_arm_id) > 0 ? "" : var.app_subnet_address_prefix
"defined" = length(var.app_subnet_address_prefix) > 0
"nsg" = {
"name" = length(local.subnet_app_nsg_arm_id) > 0 ? (
split("/",local.subnet_app_nsg_arm_id)[8]) : (
var.app_subnet_nsg_name),
"arm_id" = local.subnet_app_nsg_arm_id
}
}
subnet_web_arm_id = try(coalesce(var.web_subnet_arm_id, data.terraform_remote_state.landscape.outputs.web_subnet_id), "")
subnet_web_nsg_arm_id = try(coalesce(var.web_subnet_nsg_arm_id, data.terraform_remote_state.landscape.outputs.web_nsg_id), "")
subnet_web = {
"name" = length(local.subnet_web_arm_id) > 0 ? (
split("/",local.subnet_web_arm_id)[10]) : (
var.web_subnet_name),
"arm_id" = local.subnet_web_arm_id
"prefix" = length(local.subnet_web_arm_id) > 0 ? "" : var.db_subnet_address_prefix
"defined" = length(var.web_subnet_address_prefix) > 0
"nsg" = {
"name" = length(local.subnet_web_nsg_arm_id) > 0 ? (
split("/",local.subnet_web_nsg_arm_id)[8]) : (
var.web_subnet_nsg_name),
"arm_id" = local.subnet_web_nsg_arm_id
}
}
subnet_storage_arm_id = try(coalesce(var.storage_subnet_arm_id, data.terraform_remote_state.landscape.outputs.storage_subnet_id), "")
subnet_storage_nsg_arm_id = try(coalesce(var.storage_subnet_nsg_arm_id, data.terraform_remote_state.landscape.outputs.storage_nsg_id), "")
subnet_storage = {
"name" = length(local.subnet_storage_arm_id) > 0 ? (
split("/",local.subnet_storage_arm_id)[10]) : (
var.storage_subnet_name),
"arm_id" = local.subnet_storage_arm_id
"prefix" = length(local.subnet_storage_arm_id) > 0 ? "" : var.db_subnet_address_prefix
"defined" = length(var.storage_subnet_address_prefix) > 0
"nsg" = {
"name" = length(local.subnet_storage_nsg_arm_id) > 0 ? (
split("/",local.subnet_storage_nsg_arm_id)[8]) : (
var.storage_subnet_nsg_name),
"arm_id" = local.subnet_storage_nsg_arm_id
}
}
all_subnets = merge(local.sap, (
{
"subnet_admin" = local.subnet_admin
"subnet_db" = local.subnet_db
"subnet_app" = local.subnet_app
"subnet_web" = local.subnet_web
"subnet_storage" = local.subnet_storage
}
))
user_keyvault_specified = (length(var.user_keyvault_id) ) > 0
user_keyvault = local.user_keyvault_specified ? (
var.user_keyvault_id
) : ""
spn_keyvault_specified = length(var.spn_keyvault_id) > 0
spn_kv = local.spn_keyvault_specified ? var.spn_keyvault_id : ""
username_specified = (length(var.automation_username)) > 0
username = var.automation_username
password_specified = (length(var.automation_password) ) > 0
password = var.automation_password
path_to_public_key_specified = (length(var.automation_path_to_public_key) ) > 0
path_to_public_key = var.automation_path_to_public_key
path_to_private_key_specified = (length(var.automation_path_to_private_key)) > 0
path_to_private_key = var.automation_path_to_private_key
disk_encryption_set_defined = (length(var.vm_disk_encryption_set_id) ) > 0
disk_encryption_set_id = var.vm_disk_encryption_set_id
infrastructure = merge(local.temp_infrastructure, (
local.resource_group_defined ? { resource_group = local.resource_group } : null), (
local.app_ppg_defined ? { app_ppg = local.app_ppg } : null), (
local.ppg_defined ? { ppg = local.ppg } : null), (
local.deploy_anchor_vm ? { anchor_vms = local.anchor_vms } : null),
{ virtual_networks = merge(local.virtual_networks, { sap = local.all_subnets }) }
)
application_tier = merge(local.application_temp, (
local.app_authentication_defined ? { authentication = local.app_authentication } : null), (
local.app_os_specified ? { app_os = local.app_os } : null), (
local.scs_os_specified ? { scs_os = local.scs_os } : (local.app_os_specified ? { scs_os = local.app_os } : null)), (
local.web_os_specified ? { web_os = local.web_os } : (local.app_os_specified ? { web_os = local.app_os } : null)), (
length(local.app_zones_temp) > 0 ? { app_zones = local.app_zones_temp } : null), (
length(local.scs_zones_temp) > 0 ? { scs_zones = local.scs_zones_temp } : null), (
length(local.web_zones_temp) > 0 ? { web_zones = local.web_zones_temp } : null), (
length(local.app_nic_ips) > 0 ? { app_nic_ips = local.app_nic_ips } : null), (
length(var.application_server_nic_secondary_ips) > 0 ? { app_nic_secondary_ips = var.application_server_nic_secondary_ips } : null), (
length(local.app_admin_nic_ips) > 0 ? { app_admin_nic_ips = local.app_admin_nic_ips } : null), (
length(local.scs_nic_ips) > 0 ? { scs_nic_ips = local.scs_nic_ips } : null), (
length(var.scs_server_nic_secondary_ips) > 0 ? { scs_nic_secondary_ips = var.scs_server_nic_secondary_ips } : null), (
length(local.scs_admin_nic_ips) > 0 ? { scs_admin_nic_ips = local.scs_admin_nic_ips } : null), (
length(local.scs_server_loadbalancer_ips) > 0 ? { scs_server_loadbalancer_ips = local.scs_server_loadbalancer_ips } : null), (
length(local.web_nic_ips) > 0 ? { web_nic_ips = local.web_nic_ips } : null), (
length(var.webdispatcher_server_nic_secondary_ips) > 0 ? { web_nic_secondary_ips = var.webdispatcher_server_nic_secondary_ips } : null), (
length(local.web_admin_nic_ips) > 0 ? { web_admin_nic_ips = local.web_admin_nic_ips } : null), (
length(local.webdispatcher_loadbalancer_ips) > 0 ? { webdispatcher_loadbalancer_ips = local.webdispatcher_loadbalancer_ips } : null), (
length(local.app_tags) > 0 ? { app_tags = local.app_tags } : { app_tags = local.app_tags }), (
length(local.scs_tags) > 0 ? { scs_tags = local.scs_tags } : { scs_tags = local.scs_tags }), (
length(local.web_tags) > 0 ? { web_tags = local.web_tags } : { web_tags = local.web_tags }), (
var.use_fence_kdump && var.scs_high_availability ? { fence_kdump_disk_size = var.use_fence_kdump_size_gb_scs } : { fence_kdump_disk_size = 0 } ), (
var.use_fence_kdump && var.scs_high_availability ? { fence_kdump_lun_number = var.use_fence_kdump_lun_scs } : { fence_kdump_lun_number = -1 }
)
)
database = merge(
local.databases_temp,
(local.db_os_specified ? { os = local.db_os } : null),
(local.db_authentication_defined ? { authentication = local.db_authentication } : null),
(local.db_avset_arm_ids_defined ? { avset_arm_ids = local.avset_arm_ids } : null),
(length(local.frontend_ips) > 0 ? { loadbalancer = { frontend_ips = local.frontend_ips } } : { loadbalancer = { frontend_ips = [] } }),
(length(local.db_tags) > 0 ? { tags = local.db_tags } : null),
(local.db_sid_specified ? { instance = local.instance } : null), (
( var.use_fence_kdump &&
var.database_high_availability ) ? { fence_kdump_disk_size = var.use_fence_kdump_size_gb_db } : { fence_kdump_disk_size = 0 } ), (
( var.use_fence_kdump &&
var.database_high_availability ) ? { fence_kdump_lun_number = var.use_fence_kdump_lun_db } : { fence_kdump_lun_number = -1 }
)
)
authentication = merge(local.authentication_temp, (
local.username_specified ? { username = local.username } : null), (
local.password_specified ? { password = local.password } : null), (
local.path_to_public_key_specified ? { path_to_public_key = local.path_to_public_key } : null), (
local.path_to_private_key_specified ? { path_to_private_key = local.path_to_private_key } : null
)
)
key_vault = merge(local.key_vault_temp, (
local.user_keyvault_specified ? (
{
kv_user_id = local.user_keyvault
}
) : null), (
local.spn_keyvault_specified ? (
{
kv_spn_id = local.spn_kv
}
) : null
)
)
options = merge(local.options_temp, (local.disk_encryption_set_defined ? (
{
disk_encryption_set_id = local.disk_encryption_set_id
}
) : null))
hana_ANF_volumes = {
use_for_data = var.ANF_HANA_data
data_volume_size = var.ANF_HANA_data_volume_size
use_existing_data_volume = var.ANF_HANA_data_use_existing_volume
data_volume_name = var.ANF_HANA_data_volume_name
data_volume_throughput = var.ANF_HANA_data_volume_throughput
data_volume_count = var.ANF_HANA_data_volume_count
use_for_log = var.ANF_HANA_log
log_volume_size = var.ANF_HANA_log_volume_size
use_existing_log_volume = var.ANF_HANA_log_use_existing
log_volume_name = var.ANF_HANA_log_volume_name
log_volume_throughput = var.ANF_HANA_log_volume_throughput
log_volume_count = var.ANF_HANA_log_volume_count
use_for_shared = var.ANF_HANA_shared
shared_volume_size = var.ANF_HANA_shared_volume_size
use_existing_shared_volume = var.ANF_HANA_shared_use_existing
shared_volume_name = var.ANF_HANA_shared_volume_name
shared_volume_throughput = var.ANF_HANA_shared_volume_throughput
use_for_usr_sap = var.ANF_usr_sap
usr_sap_volume_size = var.ANF_usr_sap_volume_size
use_existing_usr_sap_volume = var.ANF_usr_sap_use_existing
usr_sap_volume_name = var.ANF_usr_sap_volume_name
usr_sap_volume_throughput = var.ANF_usr_sap_throughput
sapmnt_volume_size = var.sapmnt_volume_size
use_for_sapmnt = var.ANF_sapmnt
use_existing_sapmnt_volume = var.ANF_sapmnt_use_existing
sapmnt_volume_name = var.ANF_sapmnt_volume_name
sapmnt_volume_throughput = var.ANF_sapmnt_volume_throughput
sapmnt_use_clone_in_secondary_zone = var.ANF_sapmnt_use_clone_in_secondary_zone
use_AVG_for_data = var.ANF_HANA_use_AVG
use_zones = var.ANF_HANA_use_Zones
}
dns_settings = {
use_custom_dns_a_registration = var.use_custom_dns_a_registration
dns_zone_names = var.dns_zone_names
management_dns_resourcegroup_name = trimspace(coalesce(var.management_dns_resourcegroup_name, try(data.terraform_remote_state.landscape.outputs.management_dns_resourcegroup_name, local.saplib_resource_group_name)," "))
management_dns_subscription_id = trimspace(coalesce(var.management_dns_subscription_id, try(data.terraform_remote_state.landscape.outputs.management_dns_subscription_id, " ")," "))
privatelink_dns_resourcegroup_name = trimspace(coalesce(var.privatelink_dns_resourcegroup_name,
try(data.terraform_remote_state.landscape.outputs.privatelink_dns_resourcegroup_name,
try(data.terraform_remote_state.landscape.outputs.management_dns_resourcegroup_name, local.saplib_resource_group_name)
),
" "
))
privatelink_dns_subscription_id = trimspace(coalesce(var.privatelink_dns_subscription_id,
try(data.terraform_remote_state.landscape.outputs.privatelink_dns_subscription_id,
try(data.terraform_remote_state.landscape.outputs.management_dns_subscription_id, "")
), " "
))
register_storage_accounts_keyvaults_with_dns = var.register_storage_accounts_keyvaults_with_dns
register_endpoints_with_dns = var.register_endpoints_with_dns
register_virtual_network_to_dns = try(data.terraform_remote_state.landscape.outputs.register_virtual_network_to_dns, false)
}
}