code: func CreateOrMutateConfigMap(client clientset.Interface, cm *v1.ConfigMap, mutator ConfigMapMutator) error {
  	if _, err := client.CoreV1().ConfigMaps(cm.ObjectMeta.Namespace).Create(cm); err != nil {
  		if !apierrors.IsAlreadyExists(err) {
  			return errors.Wrap(err, "unable to create ConfigMap")
  		}
  		return MutateConfigMap(client, metav1.ObjectMeta{Namespace: cm.ObjectMeta.Namespace, Name: cm.ObjectMeta.Name}, mutator)
  	}
  	return nil
  }
docs: // CreateOrMutateConfigMap tries to create the ConfigMap provided as cm. If the resource exists already, the latest version will be fetched from
  // the cluster and mutator callback will be called on it, then an Update of the mutated ConfigMap will be performed. This function is resilient
  // to conflicts, and a retry will be issued if the ConfigMap was modified on the server between the refresh and the update (while the mutation was
  // taking place)