code: func (os *OpenStack) CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (string, string, string, bool, error) {
  	volumes, err := os.volumeService("")
  	if err != nil {
  		return "", "", "", os.bsOpts.IgnoreVolumeAZ, fmt.Errorf("unable to initialize cinder client for region: %s, err: %v", os.region, err)
  	}
  
  	opts := volumeCreateOpts{
  		Name:         name,
  		Size:         size,
  		VolumeType:   vtype,
  		Availability: availability,
  	}
  	if tags != nil {
  		opts.Metadata = *tags
  	}
  
  	volumeID, volumeAZ, err := volumes.createVolume(opts)
  
  	if err != nil {
  		return "", "", "", os.bsOpts.IgnoreVolumeAZ, fmt.Errorf("failed to create a %d GB volume: %v", size, err)
  	}
  
  	klog.Infof("Created volume %v in Availability Zone: %v Region: %v Ignore volume AZ: %v", volumeID, volumeAZ, os.region, os.bsOpts.IgnoreVolumeAZ)
  	return volumeID, volumeAZ, os.region, os.bsOpts.IgnoreVolumeAZ, nil
  }
docs: // CreateVolume creates a volume of given size (in GiB)