code: func CreateOrUpdateServiceAccount(client clientset.Interface, sa *v1.ServiceAccount) error {
  	if _, err := client.CoreV1().ServiceAccounts(sa.ObjectMeta.Namespace).Create(sa); err != nil {
  		// Note: We don't run .Update here afterwards as that's probably not required
  		// Only thing that could be updated is annotations/labels in .metadata, but we don't use that currently
  		if !apierrors.IsAlreadyExists(err) {
  			return errors.Wrap(err, "unable to create serviceaccount")
  		}
  	}
  	return nil
  }
docs: // CreateOrUpdateServiceAccount creates a ServiceAccount if the target resource doesn't exist. If the resource exists already, this function will update the resource instead.