code: func validateNoAnnotationOverwrites(accessor metav1.Object, annotations map[string]string) error {
  	var buf bytes.Buffer
  	for key := range annotations {
  		// change-cause annotation can always be overwritten
  		if key == kubectl.ChangeCauseAnnotation {
  			continue
  		}
  		if value, found := accessor.GetAnnotations()[key]; found {
  			if buf.Len() > 0 {
  				buf.WriteString("; ")
  			}
  			buf.WriteString(fmt.Sprintf("'%s' already has a value (%s)", key, value))
  		}
  	}
  	if buf.Len() > 0 {
  		return fmt.Errorf("--overwrite is false but found the following declared annotation(s): %s", buf.String())
  	}
  	return nil
  }
docs: // validateNoAnnotationOverwrites validates that when overwrite is false, to-be-updated annotations don't exist in the object annotation map (yet)