Merge pull request #116127 from pacoxu/negative-grace-period

retry for negative TerminationGracePeriodSeconds update
This commit is contained in:
Kubernetes Prow Robot 2023-03-01 04:29:16 -08:00 committed by GitHub
commit 9ef145d3a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -38,6 +38,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/watch" "k8s.io/apimachinery/pkg/watch"
v1core "k8s.io/client-go/kubernetes/typed/core/v1" v1core "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/client-go/util/retry"
"k8s.io/kubernetes/pkg/kubelet/events" "k8s.io/kubernetes/pkg/kubelet/events"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet" e2ekubelet "k8s.io/kubernetes/test/e2e/framework/kubelet"
@ -384,14 +385,16 @@ var _ = SIGDescribe("Pods Extended", func() {
framework.Failf("pod spec TerminationGracePeriodSeconds is not 1: %d", *pod.Spec.TerminationGracePeriodSeconds) framework.Failf("pod spec TerminationGracePeriodSeconds is not 1: %d", *pod.Spec.TerminationGracePeriodSeconds)
} }
time.Sleep(5 * time.Second) // retry if the TerminationGracePeriodSeconds is overrided
// see more in https://github.com/kubernetes/kubernetes/pull/115606
pod, err = podClient.Get(ctx, pod.Name, metav1.GetOptions{}) err = retry.RetryOnConflict(retry.DefaultBackoff, func() error {
framework.ExpectNoError(err, "failed to query for pod") pod, err := podClient.Get(ctx, pod.Name, metav1.GetOptions{})
framework.ExpectNoError(err, "failed to query for pod")
ginkgo.By("updating the pod to have a negative TerminationGracePeriodSeconds") ginkgo.By("updating the pod to have a negative TerminationGracePeriodSeconds")
pod.Spec.TerminationGracePeriodSeconds = utilpointer.Int64(-1) pod.Spec.TerminationGracePeriodSeconds = utilpointer.Int64(-1)
_, err = podClient.PodInterface.Update(ctx, pod, metav1.UpdateOptions{}) _, err = podClient.PodInterface.Update(ctx, pod, metav1.UpdateOptions{})
return err
})
framework.ExpectNoError(err, "failed to update pod") framework.ExpectNoError(err, "failed to update pod")
pod, err = podClient.Get(ctx, pod.Name, metav1.GetOptions{}) pod, err = podClient.Get(ctx, pod.Name, metav1.GetOptions{})