Commit 3f4c4389 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #34836 from mikedanese/prune-1

Automatic merge from submit-queue kubectl: apply prune should fallback to basic delete when a resource has no reaper Fixes #34790 cc @kubernetes/kubectl @MrHohn
parents 8b6cebcb c17a8a77
......@@ -1111,6 +1111,14 @@ __EOF__
kube::test::get_object_assert 'pods b' "{{${id_field}}}" 'b'
kubectl delete pod/a pod/b
## kubectl apply --prune should fallback to delete for non reapable types
kubectl apply --all --prune -f hack/testdata/prune-reap/a.yml 2>&1 "${kube_flags[@]}"
kube::test::get_object_assert 'pvc a-pvc' "{{${id_field}}}" 'a-pvc'
kubectl apply --all --prune -f hack/testdata/prune-reap/b.yml 2>&1 "${kube_flags[@]}"
kube::test::get_object_assert 'pvc b-pvc' "{{${id_field}}}" 'b-pvc'
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
kubectl delete pvc b-pvc 2>&1 "${kube_flags[@]}"
## kubectl run should create deployments or jobs
# Pre-Condition: no Job exists
kube::test::get_object_assert jobs "{{range.items}}{{$id_field}}:{{end}}" ''
......
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: a-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: b-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
......@@ -351,10 +351,7 @@ func (p *pruner) prune(namespace string, mapping *meta.RESTMapping, shortOutput
func (p *pruner) delete(namespace, name string, mapping *meta.RESTMapping, c resource.RESTClient) error {
if !p.cascade {
if err := resource.NewHelper(c, mapping).Delete(namespace, name); err != nil {
return err
}
return nil
return resource.NewHelper(c, mapping).Delete(namespace, name)
}
cs, err := p.clientsetFunc()
if err != nil {
......@@ -362,7 +359,10 @@ func (p *pruner) delete(namespace, name string, mapping *meta.RESTMapping, c res
}
r, err := kubectl.ReaperFor(mapping.GroupVersionKind.GroupKind(), cs)
if err != nil {
return err
if _, ok := err.(*kubectl.NoSuchReaperError); !ok {
return err
}
return resource.NewHelper(c, mapping).Delete(namespace, name)
}
if err := r.Stop(namespace, name, 2*time.Minute, api.NewDeleteOptions(int64(p.gracePeriod))); err != nil {
return err
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment