code: func GetConflictFreeLabels(labels []string) ([]string, error) {
  	labelMap := map[string]string{}
  	for _, label := range labels {
  		stringSlice := strings.SplitN(label, "=", 2)
  		if len(stringSlice) > 1 {
  			// If there is a conflict we will return an error
  			if v, ok := labelMap[stringSlice[0]]; ok && v != stringSlice[1] {
  				return nil, fmt.Errorf("conflict labels for %s=%s and %s=%s", stringSlice[0], stringSlice[1], stringSlice[0], v)
  			}
  			labelMap[stringSlice[0]] = stringSlice[1]
  		}
  	}
  
  	newLabels := []string{}
  	for k, v := range labelMap {
  		newLabels = append(newLabels, fmt.Sprintf("%s=%s", k, v))
  	}
  	return newLabels, nil
  }
docs: // GetConflictFreeLabels validates Labels for conflict
  // In swarm the duplicates for labels are removed
  // so we only take same values here, no conflict values
  // If the key-value is the same we will only take the last label