Add error handler to recreate virtual node when it's deleted (#1143)

This commit is contained in:
zhenqxuMSFT
2023-09-15 02:58:27 +08:00
committed by GitHub
parent c5478eabb2
commit dd31d67a53

View File

@@ -251,6 +251,9 @@ type NodeConfig struct {
// The default value is derived from the number of cores available.
NumWorkers int
// Set the error handler for node status update failures
NodeStatusUpdateErrorHandler node.ErrorHandler
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(
np,
&cfg.NodeSpec,
cfg.Client.CoreV1().Nodes(),
node.WithNodeEnableLeaseV1(NodeLeaseV1Client(cfg.Client), node.DefaultLeaseDuration),
nodeControllerOpts...,
)
if err != nil {
return nil, errors.Wrap(err, "error creating node controller")