diff --git a/pkg/k8s/factory_functions.go b/pkg/k8s/factory_functions.go
index <HASH>..<HASH> 100644
--- a/pkg/k8s/factory_functions.go
+++ b/pkg/k8s/factory_functions.go
@@ -134,12 +134,22 @@ func ObjToSlimCNP(obj interface{}) *types.SlimCNP {
 
 func ObjTov1Pod(obj interface{}) *slim_corev1.Pod {
 	pod, ok := obj.(*slim_corev1.Pod)
-	if !ok {
-		log.WithField(logfields.Object, logfields.Repr(obj)).
-			Warn("Ignoring invalid k8s v1 Pod")
-		return nil
+	if ok {
+		return pod
+	}
+	deletedObj, ok := obj.(cache.DeletedFinalStateUnknown)
+	if ok {
+		// Delete was not observed by the watcher but is
+		// removed from kube-apiserver. This is the last
+		// known state and the object no longer exists.
+		pod, ok := deletedObj.Obj.(*slim_corev1.Pod)
+		if ok {
+			return pod
+		}
 	}
-	return pod
+	log.WithField(logfields.Object, logfields.Repr(obj)).
+		Warn("Ignoring invalid k8s v1 Pod")
+	return nil
 }
 
 func ObjToV1Node(obj interface{}) *slim_corev1.Node {
pkg/k8s: cast to Pod even if obj is cache.DeletedFinalStateUnknown

When casting to a Pod, the k8s watcher might send a
cache.DeletedFinalStateUnknown object to the event handler. Since the
converter is not expecting this type, it will cause a warning to be
printed in the logs which will be unexpected for users. This commit
adds the ability for the function converter to cast the objects from
cache.DeletedFinalStateUnknown to avoid printing such warning.