• Kubernetes Submit Queue's avatar
    Merge pull request #64896 from rphillips/fixes/kubectl_eviction · e3fa9133
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 65776, 64896). 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>.
    
    kubectl: wait for all errors and successes on podEviction
    
    **What this PR does / why we need it**: This fixes `kubectl drain` to wait until all errors and successes are processed, instead of returning the first error. It also tweaks the behavior of the cleanup to check to see if the pod is already terminating, and if it is to not reissue the pod terminate which leads to an error getting thrown. This fix will allow `kubectl drain` to complete successfully when a node is draining.
    
    **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
    Fixes #
    
    **Special notes for your reviewer**:
    /cc @sjenning 
    
    **Release note**:
    ```release-note
    NONE
    ```
    #### Reproduction steps
    ### sleep.yml
    ```yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: bash
    spec: 
      containers:
      - name: bash
        image: bash
        resources:
          limits:
            cpu: 500m
            memory: 500Mi
        command:
        - bash
        - -c
        - "nothing() { sleep 1; } ; trap nothing 15 ; while true; do echo \"hello\"; sleep 10; done"
      terminationGracePeriodSeconds: 3000
      restartPolicy: Never
    ```
    
    ```
    $ kubectl create ns testing
    $ kubectl create -f sleep.yml
    $ kubectl delete ns testing
    $ kubectl drain 127.0.0.1 --force
    ```
    e3fa9133
Name
Last commit
Last update
..
apply Loading commit data...
apps Loading commit data...
cmd Loading commit data...
explain Loading commit data...
genericclioptions Loading commit data...
metricsutil Loading commit data...
plugins Loading commit data...
polymorphichelpers Loading commit data...
proxy Loading commit data...
scheme Loading commit data...
util Loading commit data...
validation Loading commit data...
.import-restrictions Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...
apply.go Loading commit data...
autoscale.go Loading commit data...
autoscale_test.go Loading commit data...
clusterrolebinding.go Loading commit data...
clusterrolebinding_test.go Loading commit data...
conditions.go Loading commit data...
configmap.go Loading commit data...
configmap_test.go Loading commit data...
deployment.go Loading commit data...
deployment_test.go Loading commit data...
doc.go Loading commit data...
env_file.go Loading commit data...
env_file_test.go Loading commit data...
generate.go Loading commit data...
generate_test.go Loading commit data...
history.go Loading commit data...
history_test.go Loading commit data...
interfaces.go Loading commit data...
namespace.go Loading commit data...
namespace_test.go Loading commit data...
pdb.go Loading commit data...
pdb_test.go Loading commit data...
priorityclass.go Loading commit data...
priorityclass_test.go Loading commit data...
quota.go Loading commit data...
quota_test.go Loading commit data...
rolebinding.go Loading commit data...
rolebinding_test.go Loading commit data...
rollback.go Loading commit data...
rollback_test.go Loading commit data...
rolling_updater.go Loading commit data...
rolling_updater_test.go Loading commit data...
rollout_status.go Loading commit data...
rollout_status_test.go Loading commit data...
run.go Loading commit data...
run_test.go Loading commit data...
scale.go Loading commit data...
scale_test.go Loading commit data...
secret.go Loading commit data...
secret_for_docker_registry.go Loading commit data...
secret_for_docker_registry_test.go Loading commit data...
secret_for_tls.go Loading commit data...
secret_for_tls_test.go Loading commit data...
secret_test.go Loading commit data...
service.go Loading commit data...
service_basic.go Loading commit data...
service_basic_test.go Loading commit data...
service_test.go Loading commit data...
serviceaccount.go Loading commit data...
serviceaccount_test.go Loading commit data...
sorter.go Loading commit data...
sorter_test.go Loading commit data...