@@ -89,12 +89,18 @@ resource "vsphere_virtual_machine" "vm" {
8989 guest_id = data. vsphere_virtual_machine . template . guest_id
9090 scsi_bus_sharing = var. scsi_bus_sharing
9191 scsi_type = var. scsi_type != " " ? var. scsi_type : data. vsphere_virtual_machine . template . scsi_type
92- scsi_controller_count = max (max (0 , flatten ([
93- for item in values (var. data_disk ) : [
94- for elem , val in item :
95- elem == " data_disk_scsi_controller" ? val : 0
96- ]
97- ])... ) + 1 , var. scsi_controller )
92+ scsi_controller_count = max (
93+ max (0 ,flatten ([
94+ for item in values (var. data_disk ) : [
95+ for elem , val in item :
96+ elem == " data_disk_scsi_controller" ? val : 0
97+ ]])... ) + 1 ,
98+ ceil ((max (0 ,flatten ([
99+ for item in values (var. data_disk ) : [
100+ for elem , val in item :
101+ elem == " unit_number" ? val : 0
102+ ] ])... ) + 1 ) / 15 ),
103+ var. scsi_controller )
98104 wait_for_guest_net_routable = var. wait_for_guest_net_routable
99105 wait_for_guest_ip_timeout = var. wait_for_guest_ip_timeout
100106 wait_for_guest_net_timeout = var. wait_for_guest_net_timeout
@@ -132,7 +138,27 @@ resource "vsphere_virtual_machine" "vm" {
132138 content {
133139 label = terraform_disks. key
134140 size = lookup (terraform_disks. value , " size_gb" , null )
135- 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
141+ unit_number = (
142+ lookup (
143+ terraform_disks. value ,
144+ " unit_number" ,
145+ - 1
146+ ) < 0 ? (
147+ lookup (
148+ terraform_disks. value ,
149+ " data_disk_scsi_controller" ,
150+ 0
151+ ) > 0 ? (
152+ (terraform_disks. value . data_disk_scsi_controller * 15 ) +
153+ index (keys (var. data_disk ), terraform_disks. key ) +
154+ (var. scsi_controller == tonumber (terraform_disks. value [" data_disk_scsi_controller" ]) ? local. template_disk_count : 0 )
155+ ) : (
156+ index (keys (var. data_disk ), terraform_disks. key ) + local. template_disk_count
157+ )
158+ ) : (
159+ tonumber (terraform_disks. value [" unit_number" ])
160+ )
161+ )
136162 thin_provisioned = lookup (terraform_disks. value , " thin_provisioned" , " true" )
137163 eagerly_scrub = lookup (terraform_disks. value , " eagerly_scrub" , " false" )
138164 datastore_id = lookup (terraform_disks. value , " datastore_id" , null )
0 commit comments