@@ -85,12 +85,18 @@ resource "vsphere_virtual_machine" "vm" {
8585 guest_id = data. vsphere_virtual_machine . template . guest_id
8686 scsi_bus_sharing = var. scsi_bus_sharing
8787 scsi_type = var. scsi_type != " " ? var. scsi_type : data. vsphere_virtual_machine . template . scsi_type
88- scsi_controller_count = max (max (0 , flatten ([
89- for item in values (var. data_disk ) : [
90- for elem , val in item :
91- elem == " data_disk_scsi_controller" ? val : 0
92- ]
93- ])... ) + 1 , var. scsi_controller )
88+ scsi_controller_count = max (
89+ max (0 ,flatten ([
90+ for item in values (var. data_disk ) : [
91+ for elem , val in item :
92+ elem == " data_disk_scsi_controller" ? val : 0
93+ ]])... ) + 1 ,
94+ ceil ((max (0 ,flatten ([
95+ for item in values (var. data_disk ) : [
96+ for elem , val in item :
97+ elem == " unit_number" ? val : 0
98+ ] ])... ) + 1 ) / 15 ),
99+ var. scsi_controller )
94100 wait_for_guest_net_routable = var. wait_for_guest_net_routable
95101 wait_for_guest_ip_timeout = var. wait_for_guest_ip_timeout
96102 wait_for_guest_net_timeout = var. wait_for_guest_net_timeout
@@ -125,7 +131,27 @@ resource "vsphere_virtual_machine" "vm" {
125131 content {
126132 label = terraform_disks. key
127133 size = lookup (terraform_disks. value , " size_gb" , null )
128- unit_number = lookup (terraform_disks. value , " data_disk_scsi_controller" , 0 ) ? terraform_disks. value . data_disk_scsi_controller * 15 + index (keys (var. data_disk ), terraform_disks. key ) + (var. scsi_controller == tonumber (terraform_disks. value [" data_disk_scsi_controller" ]) ? local. template_disk_count : 0 ) : index (keys (var. data_disk ), terraform_disks. key ) + local. template_disk_count
134+ unit_number = (
135+ lookup (
136+ terraform_disks. value ,
137+ " unit_number" ,
138+ - 1
139+ ) < 0 ? (
140+ lookup (
141+ terraform_disks. value ,
142+ " data_disk_scsi_controller" ,
143+ 0
144+ ) > 0 ? (
145+ (terraform_disks. value . data_disk_scsi_controller * 15 ) +
146+ index (keys (var. data_disk ), terraform_disks. key ) +
147+ (var. scsi_controller == tonumber (terraform_disks. value [" data_disk_scsi_controller" ]) ? local. template_disk_count : 0 )
148+ ) : (
149+ index (keys (var. data_disk ), terraform_disks. key ) + local. template_disk_count
150+ )
151+ ) : (
152+ tonumber (terraform_disks. value [" unit_number" ])
153+ )
154+ )
129155 thin_provisioned = lookup (terraform_disks. value , " thin_provisioned" , " true" )
130156 eagerly_scrub = lookup (terraform_disks. value , " eagerly_scrub" , " false" )
131157 datastore_id = lookup (terraform_disks. value , " datastore_id" , null )
0 commit comments