Files
kubernetes/pkg/controller
Kubernetes Submit Queue 6a28658ca1 Merge pull request #44058 from caesarxuchao/background-cascading
Automatic merge from submit-queue (batch tested with PRs 44058, 48085, 48077, 48076, 47823)

Make background garbage collection cascading

Fix #44046, fix #47843 where user reported that the garbage collector didn't delete pods when a deployment was deleted with PropagationPolicy=Background.

The cause is that when propagating background garbage collection request, the garbage collector deletes dependents with DeleteOptions.PropagationPolicy=nil, which means the default GC policy of a resource (defined by its REST strategy) and the existing GC-related finalizers will decide how the delete request is propagated further. Unfortunately, the default GC policy for RS is orphaning, so the pods are behind when a deployment is deleted.

This PR changes the garbage collector to delete dependents with DeleteOptions.PropagationPolicy=Background when the owner is deleted in background. This means the dependent's existing GC finalizers will be overridden, making orphaning less flexible (see this made-up [case](https://github.com/kubernetes/kubeadm/issues/149#issuecomment-278942012)). I think sacrificing the flexibility of orphaning is worthwhile, because making the behavior of background garbage collection matching users' expectation is more important.

cc @lavalamp @kargakis @krmayankk @enisoc 

```release-note
The garbage collector now cascades deletion properly when deleting an object with propagationPolicy="background". This resolves issue [#44046](https://github.com/kubernetes/kubernetes/issues/44046), so that when a deployment is deleted with propagationPolicy="background", the garbage collector ensures dependent pods are deleted as well.
```
2017-06-26 15:29:25 -07:00
..
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-25 21:41:10 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2016-10-13 16:10:24 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2017-06-25 21:41:10 -07:00
2017-06-22 11:31:03 -07:00
2017-06-22 11:31:03 -07:00
2016-07-16 13:48:21 -04:00