Add error handler to recreate virtual node when it's deleted (#1143)
This commit is contained in:
@@ -251,6 +251,9 @@ type NodeConfig struct {
|
|||||||
// The default value is derived from the number of cores available.
|
// The default value is derived from the number of cores available.
|
||||||
NumWorkers int
|
NumWorkers int
|
||||||
|
|
||||||
|
// Set the error handler for node status update failures
|
||||||
|
NodeStatusUpdateErrorHandler node.ErrorHandler
|
||||||
|
|
||||||
routeAttacher func(Provider, NodeConfig, corev1listers.PodLister)
|
routeAttacher func(Provider, NodeConfig, corev1listers.PodLister)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -365,11 +368,19 @@ func NewNode(name string, newProvider NewProviderFunc, opts ...NodeOpt) (*Node,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nodeControllerOpts := []node.NodeControllerOpt{
|
||||||
|
node.WithNodeEnableLeaseV1(NodeLeaseV1Client(cfg.Client), node.DefaultLeaseDuration),
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.NodeStatusUpdateErrorHandler != nil {
|
||||||
|
nodeControllerOpts = append(nodeControllerOpts, node.WithNodeStatusUpdateErrorHandler(cfg.NodeStatusUpdateErrorHandler))
|
||||||
|
}
|
||||||
|
|
||||||
nc, err := node.NewNodeController(
|
nc, err := node.NewNodeController(
|
||||||
np,
|
np,
|
||||||
&cfg.NodeSpec,
|
&cfg.NodeSpec,
|
||||||
cfg.Client.CoreV1().Nodes(),
|
cfg.Client.CoreV1().Nodes(),
|
||||||
node.WithNodeEnableLeaseV1(NodeLeaseV1Client(cfg.Client), node.DefaultLeaseDuration),
|
nodeControllerOpts...,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "error creating node controller")
|
return nil, errors.Wrap(err, "error creating node controller")
|
||||||
|
|||||||
Reference in New Issue
Block a user