code: func (nm *NamespaceController) enqueueNamespace(obj interface{}) {
  	key, err := controller.KeyFunc(obj)
  	if err != nil {
  		utilruntime.HandleError(fmt.Errorf("Couldn't get key for object %+v: %v", obj, err))
  		return
  	}
  
  	namespace := obj.(*v1.Namespace)
  	// don't queue if we aren't deleted
  	if namespace.DeletionTimestamp == nil || namespace.DeletionTimestamp.IsZero() {
  		return
  	}
  
  	// delay processing namespace events to allow HA api servers to observe namespace deletion,
  	// and HA etcd servers to observe last minute object creations inside the namespace
  	nm.queue.AddAfter(key, namespaceDeletionGracePeriod)
  }
docs: // enqueueNamespace adds an object to the controller work queue
  // obj could be an *v1.Namespace, or a DeletionFinalStateUnknown item.