locals { ####################### admin_password = var.admin_password != "" ? var.admin_password : random_password.admin_pass.result ####################### # Получаем объект с ключами в виде имен серверов и содержимым всего, # что мы хотим видеть при передаче из vars servers = merge([ for vcd_key, vcd_config in var.vcds : merge([ for server_group, servers in vcd_config.servers : { for server_name, server_config in servers : "${server_name}.${server_group}" => { vcd_key = vcd_key server_group = server_group server_name = server_name config = server_config network_routed = vcd_config.network_routed role = server_group } } ]...) ]...) # Получаем объект с ключами в виде сервера-uidдиска, # и содержимым в виде его сайзинга disks = merge([ for serverName, serverConfig in local.servers: { for diskUid, diskSize in serverConfig.config.dataDisk: "${serverName}-${diskUid}" => { vcd_key = serverConfig.vcd_key vm_name = serverName unit_num = diskUid disk_size = diskSize } } ]...) }