code: func NewProvisionerConfig(pvName string, params map[string]string) (*ProvisionerConfig, error) {
  	var config ProvisionerConfig
  	var err error
  
  	// Set default volume type
  	forceCreate := false
  	volumeType := ""
  	namespace := "default"
  	selector := "glusterfs-node==pod"
  	var brickRootPaths []BrickRootPath
  
  	for k, v := range params {
  		switch strings.ToLower(k) {
  		case "brickrootpaths":
  			brickRootPaths, err = parseBrickRootPaths(v)
  			if err != nil {
  				return nil, err
  			}
  		case "volumetype":
  			volumeType = strings.TrimSpace(v)
  		case "namespace":
  			namespace = strings.TrimSpace(v)
  		case "selector":
  			selector = strings.TrimSpace(v)
  		case "forcecreate":
  			v = strings.TrimSpace(v)
  			forceCreate = strings.ToLower(v) == "true"
  		}
  	}
  
  	config.BrickRootPaths = brickRootPaths
  	config.VolumeName = pvName
  	config.VolumeType = volumeType
  	config.Namespace = namespace
  	config.LabelSelector = selector
  	config.ForceCreate = forceCreate
  
  	err = config.validate()
  	if err != nil {
  		return nil, err
  	}
  
  	return &config, nil
  }
docs: // NewProvisionerConfig create ProvisionerConfig from parameters of StorageClass