code: func (e *Exists) Validate(a admission.Attributes, o admission.ObjectInterfaces) error {
  	// if we're here, then we've already passed authentication, so we're allowed to do what we're trying to do
  	// if we're here, then the API server has found a route, which means that if we have a non-empty namespace
  	// its a namespaced resource.
  	if len(a.GetNamespace()) == 0 || a.GetKind().GroupKind() == api.Kind("Namespace") {
  		return nil
  	}
  
  	// we need to wait for our caches to warm
  	if !e.WaitForReady() {
  		return admission.NewForbidden(a, fmt.Errorf("not yet ready to handle request"))
  	}
  	_, err := e.namespaceLister.Get(a.GetNamespace())
  	if err == nil {
  		return nil
  	}
  	if !errors.IsNotFound(err) {
  		return errors.NewInternalError(err)
  	}
  
  	// in case of latency in our caches, make a call direct to storage to verify that it truly exists or not
  	_, err = e.client.CoreV1().Namespaces().Get(a.GetNamespace(), metav1.GetOptions{})
  	if err != nil {
  		if errors.IsNotFound(err) {
  			return err
  		}
  		return errors.NewInternalError(err)
  	}
  
  	return nil
  }
docs: // Validate makes an admission decision based on the request attributes