code: func ParseLabels(labelSpec interface{}) (map[string]string, error) {
  	labelString, isString := labelSpec.(string)
  	if !isString {
  		return nil, fmt.Errorf("expected string, found %v", labelSpec)
  	}
  	if len(labelString) == 0 {
  		return nil, fmt.Errorf("no label spec passed")
  	}
  	labels := map[string]string{}
  	labelSpecs := strings.Split(labelString, ",")
  	for ix := range labelSpecs {
  		labelSpec := strings.Split(labelSpecs[ix], "=")
  		if len(labelSpec) != 2 {
  			return nil, fmt.Errorf("unexpected label spec: %s", labelSpecs[ix])
  		}
  		if len(labelSpec[0]) == 0 {
  			return nil, fmt.Errorf("unexpected empty label key")
  		}
  		labels[labelSpec[0]] = labelSpec[1]
  	}
  	return labels, nil
  }
docs: // ParseLabels turns a string representation of a label set into a map[string]string