mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Fix taint based pod eviction for clusters where controller manager
is not running with --allocate-node-cidrs set.
This commit is contained in:
parent
7b4bec038c
commit
c3a80719a2
@ -415,6 +415,53 @@ func NewNodeController(
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
nodeEventHandlerFuncs = cache.ResourceEventHandlerFuncs{
|
||||||
|
AddFunc: func(originalObj interface{}) {
|
||||||
|
obj, err := api.Scheme.DeepCopy(originalObj)
|
||||||
|
if err != nil {
|
||||||
|
utilruntime.HandleError(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
node := obj.(*v1.Node)
|
||||||
|
if nc.taintManager != nil {
|
||||||
|
nc.taintManager.NodeUpdated(nil, node)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
UpdateFunc: func(oldNode, newNode interface{}) {
|
||||||
|
node := newNode.(*v1.Node)
|
||||||
|
prevNode := oldNode.(*v1.Node)
|
||||||
|
if nc.taintManager != nil {
|
||||||
|
nc.taintManager.NodeUpdated(prevNode, node)
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
DeleteFunc: func(originalObj interface{}) {
|
||||||
|
obj, err := api.Scheme.DeepCopy(originalObj)
|
||||||
|
if err != nil {
|
||||||
|
utilruntime.HandleError(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
node, isNode := obj.(*v1.Node)
|
||||||
|
// We can get DeletedFinalStateUnknown instead of *v1.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.(*v1.Node)
|
||||||
|
if !ok {
|
||||||
|
glog.Errorf("DeletedFinalStateUnknown contained non-Node object: %v", deletedState.Obj)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if nc.taintManager != nil {
|
||||||
|
nc.taintManager.NodeUpdated(node, nil)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if nc.runTaintManager {
|
if nc.runTaintManager {
|
||||||
|
Loading…
Reference in New Issue
Block a user