mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 10:18:13 +00:00 
			
		
		
		
	kubectl: apply prune should fallback to basic delete when a resource has no reaper
This commit is contained in:
		| @@ -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}}" '' | ||||
|   | ||||
							
								
								
									
										10
									
								
								hack/testdata/prune-reap/a.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								hack/testdata/prune-reap/a.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| kind: PersistentVolumeClaim | ||||
| apiVersion: v1 | ||||
| metadata: | ||||
|   name: a-pvc | ||||
| spec: | ||||
|   accessModes: | ||||
|     - ReadWriteOnce | ||||
|   resources: | ||||
|     requests: | ||||
|       storage: 10G | ||||
							
								
								
									
										10
									
								
								hack/testdata/prune-reap/b.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								hack/testdata/prune-reap/b.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| kind: PersistentVolumeClaim | ||||
| apiVersion: v1 | ||||
| metadata: | ||||
|   name: b-pvc | ||||
| spec: | ||||
|   accessModes: | ||||
|     - ReadWriteOnce | ||||
|   resources: | ||||
|     requests: | ||||
|       storage: 10G | ||||
| @@ -343,10 +343,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 { | ||||
| @@ -354,8 +351,11 @@ func (p *pruner) delete(namespace, name string, mapping *meta.RESTMapping, c res | ||||
| 	} | ||||
| 	r, err := kubectl.ReaperFor(mapping.GroupVersionKind.GroupKind(), cs) | ||||
| 	if err != nil { | ||||
| 		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 | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Mike Danese
					Mike Danese