Merge pull request #127881 from omerap12/drain-package-PollUntilContextTimeout
Update waitForDelete to use PollUntilContextTimeout Kubernetes-commit: 5b1a4caedae0ca28adc2b22837789d6828b74d19
This commit is contained in:
commit
86e0d9e48c
4
go.mod
4
go.mod
|
@ -31,9 +31,9 @@ require (
|
|||
golang.org/x/sys v0.26.0
|
||||
gopkg.in/evanphx/json-patch.v4 v4.12.0
|
||||
k8s.io/api v0.0.0-20241011135352-a432ebea6002
|
||||
k8s.io/apimachinery v0.0.0-20241011134855-ee6d9667b400
|
||||
k8s.io/apimachinery v0.0.0-20241012054809-2b29434a8c7f
|
||||
k8s.io/cli-runtime v0.0.0-20241011145636-a38d5abff693
|
||||
k8s.io/client-go v0.0.0-20241011140021-64f5574f09ee
|
||||
k8s.io/client-go v0.0.0-20241014015924-9cff3e43bde3
|
||||
k8s.io/component-base v0.0.0-20241011141534-5f571d319450
|
||||
k8s.io/component-helpers v0.0.0-20241011141825-7b6fde1148bd
|
||||
k8s.io/klog/v2 v2.130.1
|
||||
|
|
8
go.sum
8
go.sum
|
@ -213,12 +213,12 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
|||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
k8s.io/api v0.0.0-20241011135352-a432ebea6002 h1:RvGxsDUWpmBJSDbSf4VxbU+ITNerDQ/xYIF7xjK9NsA=
|
||||
k8s.io/api v0.0.0-20241011135352-a432ebea6002/go.mod h1:KfoQfYB8K80kj2ZJhrj/CwEwZSAkQYsRFP+xICkEFLk=
|
||||
k8s.io/apimachinery v0.0.0-20241011134855-ee6d9667b400 h1:WJ70KEsKGuWl+K2pEqyC0xY436+4pNQvWknw6wOY9bk=
|
||||
k8s.io/apimachinery v0.0.0-20241011134855-ee6d9667b400/go.mod h1:y/FzDt/GaPgPceo5rJcCtD4qW5l8SwtbzESSMGEY6P8=
|
||||
k8s.io/apimachinery v0.0.0-20241012054809-2b29434a8c7f h1:LR+BiqgooGKRUEJhODAP/pjyB+w+Y+CMYg6e0M5ok0k=
|
||||
k8s.io/apimachinery v0.0.0-20241012054809-2b29434a8c7f/go.mod h1:y/FzDt/GaPgPceo5rJcCtD4qW5l8SwtbzESSMGEY6P8=
|
||||
k8s.io/cli-runtime v0.0.0-20241011145636-a38d5abff693 h1:iAMHRpOeM49eghvCeXraPq74JrURm3as94wOzQSjTzk=
|
||||
k8s.io/cli-runtime v0.0.0-20241011145636-a38d5abff693/go.mod h1:0vghq0zr9PDOH9fNAtLmpuQo1kafr4lVlElXhJLttuI=
|
||||
k8s.io/client-go v0.0.0-20241011140021-64f5574f09ee h1:fMnowvfj0lE9cimUeO4RVAu82GS8phWh1flFr31geGQ=
|
||||
k8s.io/client-go v0.0.0-20241011140021-64f5574f09ee/go.mod h1:19gUihItqYL1EFf5ypVP9XBmdFDz3Uk+npRTnsyM7Cg=
|
||||
k8s.io/client-go v0.0.0-20241014015924-9cff3e43bde3 h1:X3fef6ODHumKO/OgkKFeKr28VWQDMZHcpl9yKz1zBmA=
|
||||
k8s.io/client-go v0.0.0-20241014015924-9cff3e43bde3/go.mod h1:U/n+PIH+4FltkenaqEKdlSEQfRMWr319haj1X8kvGXM=
|
||||
k8s.io/component-base v0.0.0-20241011141534-5f571d319450 h1:reGtStlX3/j46f6heqGEH/igNt/suQ3Q88yNTyoBUKk=
|
||||
k8s.io/component-base v0.0.0-20241011141534-5f571d319450/go.mod h1:C4UDhaaaw1voy7R+17HoW6ld/rFpiPCUu/UH0wTffAE=
|
||||
k8s.io/component-helpers v0.0.0-20241011141825-7b6fde1148bd h1:JpSEBi/GIFNXkKXOOX9iuCRWqlG/ZDFYS2r2Hk3moyc=
|
||||
|
|
|
@ -413,7 +413,10 @@ func (d *Helper) deletePods(pods []corev1.Pod, getPodFn func(namespace, name str
|
|||
|
||||
func waitForDelete(params waitForDeleteParams) ([]corev1.Pod, error) {
|
||||
pods := params.pods
|
||||
err := wait.PollImmediate(params.interval, params.timeout, func() (bool, error) {
|
||||
if params.ctx == nil {
|
||||
params.ctx = context.Background()
|
||||
}
|
||||
err := wait.PollUntilContextTimeout(params.ctx, params.interval, params.timeout, true, func(ctx context.Context) (done bool, err error) {
|
||||
pendingPods := []corev1.Pod{}
|
||||
for i, pod := range pods {
|
||||
p, err := params.getPodFn(pod.Namespace, pod.Name)
|
||||
|
@ -440,15 +443,7 @@ func waitForDelete(params waitForDeleteParams) ([]corev1.Pod, error) {
|
|||
}
|
||||
}
|
||||
pods = pendingPods
|
||||
if len(pendingPods) > 0 {
|
||||
select {
|
||||
case <-params.ctx.Done():
|
||||
return false, fmt.Errorf("global timeout reached: %v", params.globalTimeout)
|
||||
default:
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
return true, nil
|
||||
return len(pods) == 0, nil
|
||||
})
|
||||
return pods, err
|
||||
}
|
||||
|
|
|
@ -36,7 +36,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"k8s.io/client-go/kubernetes/fake"
|
||||
ktest "k8s.io/client-go/testing"
|
||||
)
|
||||
|
@ -101,7 +100,7 @@ func TestDeletePods(t *testing.T) {
|
|||
timeout: 3 * time.Second,
|
||||
expectPendingPods: true,
|
||||
expectError: true,
|
||||
expectedError: &wait.ErrWaitTimeout,
|
||||
expectedError: &context.DeadlineExceeded,
|
||||
getPodFn: func(namespace, name string) (*corev1.Pod, error) {
|
||||
oldPodMap, _ := createPods(false)
|
||||
if oldPod, found := oldPodMap[name]; found {
|
||||
|
@ -117,7 +116,7 @@ func TestDeletePods(t *testing.T) {
|
|||
ctxTimeoutEarly: true,
|
||||
expectPendingPods: true,
|
||||
expectError: true,
|
||||
expectedError: &wait.ErrWaitTimeout,
|
||||
expectedError: &context.Canceled,
|
||||
getPodFn: func(namespace, name string) (*corev1.Pod, error) {
|
||||
oldPodMap, _ := createPods(false)
|
||||
if oldPod, found := oldPodMap[name]; found {
|
||||
|
|
Loading…
Reference in New Issue