Handle DeletedFinalStateUnknown in NodeController

This commit is contained in:
gmarek 2016-10-13 11:19:00 +02:00
parent 4a223efd27
commit 8b7e9d303c

View File

@ -294,7 +294,20 @@ func NewNodeController(
return
}
node := obj.(*api.Node)
node, isNode := obj.(*api.Node)
// We can get DeletedFinalStateUnknown instead of *api.Node here and we need to handle that correctly. #34692
if !isNode {
deletedState, ok := obj.(cache.DeletedFinalStateUnknown)
if !ok {
glog.Errorf("Received unexpected object: %v", obj)
return
}
node, ok = deletedState.Obj.(*api.Node)
if !ok {
glog.Errorf("DeletedFinalStateUnknown contained non-Node object: %v", deletedState.Obj)
return
}
}
if err := nc.cidrAllocator.ReleaseCIDR(node); err != nil {
glog.Errorf("Error releasing CIDR: %v", err)
}