mirror of https://github.com/k3s-io/k3s
Merge pull request #42422 from vmware/fix-42399.kerneltime
Automatic merge from submit-queue Fix adding disks to more than one scsi adapter. Fixes #42399 **What this PR does / why we need it**: Allows a single node to use more than 16 disks. **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #42399 **Special notes for your reviewer**: **Release note**: ```release-note Fix adding disks to more than one scsi adapter. ```pull/6/head
commit
a84f100faa
|
@ -764,7 +764,15 @@ func (vs *VSphere) AttachDisk(vmDiskPath string, nodeName k8stypes.NodeName) (di
|
||||||
return "", "", err
|
return "", "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
scsiController = getSCSIController(vmDevices, vs.cfg.Disk.SCSIControllerType)
|
// Get VM device list
|
||||||
|
_, vmDevices, _, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance)
|
||||||
|
if err != nil {
|
||||||
|
glog.Errorf("cannot get vmDevices for VM err=%s", err)
|
||||||
|
return "", "", fmt.Errorf("cannot get vmDevices for VM err=%s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
scsiControllersOfRequiredType := getSCSIControllersOfType(vmDevices, diskControllerType)
|
||||||
|
scsiController := getAvailableSCSIController(scsiControllersOfRequiredType)
|
||||||
if scsiController == nil {
|
if scsiController == nil {
|
||||||
glog.Errorf("cannot find SCSI controller in VM")
|
glog.Errorf("cannot find SCSI controller in VM")
|
||||||
// attempt clean up of scsi controller
|
// attempt clean up of scsi controller
|
||||||
|
@ -1024,7 +1032,7 @@ func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeNam
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkDiskAttached(volPath string, vmdevices object.VirtualDeviceList, dc *object.Datacenter, client *govmomi.Client) (bool, error) {
|
func checkDiskAttached(volPath string, vmdevices object.VirtualDeviceList, dc *object.Datacenter, client *govmomi.Client) (bool, error) {
|
||||||
virtualDiskControllerKey, err := getVirtualDiskControllerKey(volPath, vmdevices, dc, client)
|
_, err := getVirtualDiskControllerKey(volPath, vmdevices, dc, client)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == ErrNoDevicesFound {
|
if err == ErrNoDevicesFound {
|
||||||
return false, nil
|
return false, nil
|
||||||
|
@ -1032,14 +1040,7 @@ func checkDiskAttached(volPath string, vmdevices object.VirtualDeviceList, dc *o
|
||||||
glog.Errorf("Failed to check whether disk is attached. err: %s", err)
|
glog.Errorf("Failed to check whether disk is attached. err: %s", err)
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
for _, controllerType := range supportedSCSIControllerType {
|
return true, nil
|
||||||
controllerkey, _ := getControllerKey(controllerType, vmdevices)
|
|
||||||
if controllerkey == virtualDiskControllerKey {
|
|
||||||
return true, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false, ErrNonSupportedControllerType
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the object key that denotes the controller object to which vmdk is attached.
|
// Returns the object key that denotes the controller object to which vmdk is attached.
|
||||||
|
|
Loading…
Reference in New Issue