code: func updateTopologyLabels(topology map[string]string) nodeUpdateFunc {
  	return func(node *v1.Node) (*v1.Node, bool, error) {
  		if topology == nil || len(topology) == 0 {
  			return node, false, nil
  		}
  
  		for k, v := range topology {
  			if curVal, exists := node.Labels[k]; exists && curVal != v {
  				return nil, false, fmt.Errorf("detected topology value collision: driver reported %q:%q but existing label is %q:%q", k, v, k, curVal)
  			}
  		}
  
  		if node.Labels == nil {
  			node.Labels = make(map[string]string)
  		}
  		for k, v := range topology {
  			node.Labels[k] = v
  		}
  		return node, true, nil
  	}
  }
docs: // updateTopologyLabels returns a function that updates labels of a Node object with the given
  // topology information.