code: func (u *storageosUtil) CreateVolume(p *storageosProvisioner) (*storageosVolume, error) {
  	if err := u.NewAPI(p.apiCfg); err != nil {
  		return nil, err
  	}
  
  	if p.labels == nil {
  		p.labels = make(map[string]string)
  	}
  	opts := storageostypes.VolumeCreateOptions{
  		Name:        p.volName,
  		Size:        p.sizeGB,
  		Description: p.description,
  		Pool:        p.pool,
  		FSType:      p.fsType,
  		Namespace:   p.volNamespace,
  		Labels:      p.labels,
  	}
  
  	vol, err := u.api.VolumeCreate(opts)
  	if err != nil {
  		klog.Errorf("volume create failed for volume %q (%v)", opts.Name, err)
  		return nil, err
  	}
  	return &storageosVolume{
  		ID:          vol.ID,
  		Name:        vol.Name,
  		Namespace:   vol.Namespace,
  		Description: vol.Description,
  		Pool:        vol.Pool,
  		FSType:      vol.FSType,
  		SizeGB:      int(vol.Size),
  		Labels:      vol.Labels,
  	}, nil
  }
docs: // Creates a new StorageOS volume and makes it available as a device within
  // /var/lib/storageos/volumes.