code: func (s *serviceAccount) getServiceAccount(namespace string, name string) (*corev1.ServiceAccount, error) {
  	serviceAccount, err := s.serviceAccountLister.ServiceAccounts(namespace).Get(name)
  	if err == nil {
  		return serviceAccount, nil
  	}
  	if !errors.IsNotFound(err) {
  		return nil, err
  	}
  
  	// Could not find in cache, attempt to look up directly
  	numAttempts := 1
  	if name == DefaultServiceAccountName {
  		// If this is the default serviceaccount, attempt more times, since it should be auto-created by the controller
  		numAttempts = 10
  	}
  	retryInterval := time.Duration(rand.Int63n(100)+int64(100)) * time.Millisecond
  	for i := 0; i < numAttempts; i++ {
  		if i != 0 {
  			time.Sleep(retryInterval)
  		}
  		serviceAccount, err := s.client.CoreV1().ServiceAccounts(namespace).Get(name, metav1.GetOptions{})
  		if err == nil {
  			return serviceAccount, nil
  		}
  		if !errors.IsNotFound(err) {
  			return nil, err
  		}
  	}
  
  	return nil, errors.NewNotFound(api.Resource("serviceaccount"), name)
  }
docs: // getServiceAccount returns the ServiceAccount for the given namespace and name if it exists