Merge pull request #64378 from wrdls/evict-timeout

Automatic merge from submit-queue (batch tested with PRs 64252, 64307, 64163, 64378, 64179). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix kubectl drain --timeout option when eviction is used

**What this PR does / why we need it**:
Timeout option of kubectl drain command is currently broken when using eviction to delete pods.

A new timer is made on each for loop iteration which means it gets reset each time a pod is evicted.

**Release note**:
```release-note
Fix kubectl drain --timeout option when eviction is used.
```

@kubernetes/sig-cli-pr-reviews
pull/8/head
Kubernetes Submit Queue 2018-06-19 21:45:17 -07:00 committed by GitHub
commit e1cc1fce2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 1 deletions

View File

@ -611,6 +611,7 @@ func (o *DrainOptions) evictPods(pods []corev1.Pod, policyGroupVersion string, g
} else {
globalTimeout = o.Timeout
}
globalTimeoutCh := time.After(globalTimeout)
for {
select {
case err := <-errCh:
@ -620,7 +621,7 @@ func (o *DrainOptions) evictPods(pods []corev1.Pod, policyGroupVersion string, g
if doneCount == len(pods) {
return nil
}
case <-time.After(globalTimeout):
case <-globalTimeoutCh:
return fmt.Errorf("Drain did not complete within %v", globalTimeout)
}
}