From 145663168a827cc24b2f283979b25dcc3a8b6952 Mon Sep 17 00:00:00 2001 From: hzma Date: Mon, 24 Oct 2022 11:32:07 +0800 Subject: [PATCH] delete pod after TerminationGracePeriodSeconds (#1984) --- pkg/controller/pod.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pkg/controller/pod.go b/pkg/controller/pod.go index c8bed133f3f..d62a6d611a6 100644 --- a/pkg/controller/pod.go +++ b/pkg/controller/pod.go @@ -227,16 +227,20 @@ func (c *Controller) enqueueUpdatePod(oldObj, newObj interface{}) { } // do not delete statefulset pod unless ownerReferences is deleted - if isStateful { - if isStatefulSetPodToDel(c.config.KubeClient, newPod, statefulSetName) { + if isStateful && isStatefulSetPodToDel(c.config.KubeClient, newPod, statefulSetName) { + go func() { klog.V(3).Infof("enqueue delete pod %s", key) + time.Sleep(time.Duration(*newPod.Spec.TerminationGracePeriodSeconds) * time.Second) c.deletePodQueue.Add(newObj) - return - } + }() + return } if isVmPod && c.isVmPodToDel(newPod, vmName) { - klog.V(3).Infof("enqueue delete pod %s", key) - c.deletePodQueue.Add(newObj) + go func() { + klog.V(3).Infof("enqueue delete pod %s", key) + time.Sleep(time.Duration(*newPod.Spec.TerminationGracePeriodSeconds) * time.Second) + c.deletePodQueue.Add(newObj) + }() return }