From 18365fdf80cba1a5a24fc5d47e5cb2775ddeaada Mon Sep 17 00:00:00 2001 From: Philippe Caseiro Date: Thu, 2 Mar 2023 16:10:47 +0100 Subject: [PATCH] feat(nebula): adding multiple data disk support for Virtual Machines --- modules/nebula/main.tf | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/modules/nebula/main.tf b/modules/nebula/main.tf index b1ae167..88ea2be 100644 --- a/modules/nebula/main.tf +++ b/modules/nebula/main.tf @@ -32,7 +32,18 @@ variable "one_sys_datastore" { default = "100" } - +locals { + data_disks = flatten([ + for vm_key, vm in var.vms : [ + for disk in vm.data_disks : { + name = "${vm_key}.${vm.domain}-data-${disk.name}" + size = disk.size + persist = disk.persistent + } + ] + ]) +} + // system image resource "opennebula_image" "system" { for_each = var.vms @@ -47,19 +58,22 @@ resource "opennebula_image" "system" { permissions = var.permissions } -/* data image not needed now -resource "opennebula_image" "data" { - for_each = var.vms - name = "data-${each.key}.${each.value.domain}" - path = "https://vulcain.cadoles.com/empty_40G" - datastore_id = var.one_image_ds - description = "data disk for ${each.key}" - persistent = each.value.data_image_persistent +// data image not needed now +resource "opennebula_image" "data" { + for_each = { + for ds in local.data_disks : "${ds.vm_key}.${ds.name}" => ds + } + + name = each.value.name + path = "https://vulcain.cadoles.com/empty_${each.value.size}" + datastore_id = var.one_image_ds + description = "Data disk of ${each.value.size} for ${each.value.vm_key}" + persistent = each.value.persist format = var.image_format dev_prefix = var.dev_prefix permissions = var.permissions -}*/ +} resource "opennebula_template" "vm_template" { for_each = var.vms