Merge pull request #39327 from shashidharatd/federation

Automatic merge from submit-queue (batch tested with PRs 39475, 38666, 39327, 38396, 39613)

Fix a bug in cascading deletion of federation objects

When FinalizerOrphan is present and set to true in federated object we are currently removing the FinalizerOrphan first and then removing FinalizerDeleteFromUnderlyingClusters. if a reconciliation is triggered in between the finalizer removals, it has undesired effect of object deletion in federated cluster.

So we should remove  FinalizerDeleteFromUnderlyingClusters first and then remove FinalizerOrphan, when FinalizerOrphan is set to true.

@nikhiljindal, @madhusudancs
This commit is contained in:
Kubernetes Submit Queue 2017-01-11 09:14:54 -08:00 committed by GitHub
commit 9d0b999e6d

View File

@ -126,11 +126,11 @@ func (dh *DeletionHelper) HandleObjectInUnderlyingClusters(obj runtime.Object) (
// If the obj has FinalizerOrphan finalizer, then we need to orphan the
// corresponding objects in underlying clusters.
// Just remove both the finalizers in that case.
obj, err := dh.removeFinalizerFunc(obj, api_v1.FinalizerOrphan)
obj, err := dh.removeFinalizerFunc(obj, FinalizerDeleteFromUnderlyingClusters)
if err != nil {
return obj, err
}
return dh.removeFinalizerFunc(obj, FinalizerDeleteFromUnderlyingClusters)
return dh.removeFinalizerFunc(obj, api_v1.FinalizerOrphan)
}
glog.V(2).Infof("Deleting obj %s from underlying clusters", objName)