code: func (gce *Cloud) AttachDisk(diskName string, nodeName types.NodeName, readOnly bool) error {
  	instanceName := mapNodeNameToInstanceName(nodeName)
  	instance, err := gce.getInstanceByName(instanceName)
  	if err != nil {
  		return fmt.Errorf("error getting instance %q", instanceName)
  	}
  	disk, err := gce.getDiskByName(diskName, instance.Zone)
  	if err != nil {
  		return err
  	}
  	readWrite := "READ_WRITE"
  	if readOnly {
  		readWrite = "READ_ONLY"
  	}
  	attachedDisk := gce.convertDiskToAttachedDisk(disk, readWrite)
  
  	attachOp, err := gce.service.Instances.AttachDisk(gce.projectID, disk.Zone, instance.Name, attachedDisk).Do()
  	if err != nil {
  		return err
  	}
  
  	return gce.waitForZoneOp(attachOp, disk.Zone)
  }
docs: // AttachDisk attaches a disk