@@ -22,6 +22,8 @@ import (
2222 "k8s.io/klog/v2"
2323 kexec "k8s.io/utils/exec"
2424
25+ "github.com/ovn-org/libovsdb/client"
26+
2527 "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/clustermanager"
2628 "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/config"
2729 "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/controllermanager"
@@ -529,6 +531,7 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util
529531 }()
530532 }
531533
534+ var ovsClient client.Client
532535 if runMode .node {
533536 wg .Add (1 )
534537 go func () {
@@ -543,13 +546,20 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util
543546 // register ovnkube node specific prometheus metrics exported by the node
544547 metrics .RegisterNodeMetrics (ctx .Done ())
545548
549+ ovsClient , err = libovsdb .NewOVSClient (ctx .Done ())
550+ if err != nil {
551+ nodeErr = fmt .Errorf ("failed to initialize libovsdb vswitchd client: %w" , err )
552+ return
553+ }
546554 nodeControllerManager , err := controllermanager .NewNodeControllerManager (
547555 ovnClientset ,
548556 watchFactory ,
549557 runMode .identity ,
550558 wg ,
551559 eventRecorder ,
552- routemanager .NewController ())
560+ routemanager .NewController (),
561+ ovsClient ,
562+ )
553563 if err != nil {
554564 nodeErr = fmt .Errorf ("failed to create node network controller: %w" , err )
555565 return
@@ -575,9 +585,11 @@ func runOvnKube(ctx context.Context, runMode *ovnkubeRunMode, ovnClientset *util
575585 metricsScrapeInterval := 30
576586 defer cancel ()
577587
578- ovsClient , err := libovsdb .NewOVSClient (ctx .Done ())
579- if err != nil {
580- return fmt .Errorf ("failed to initialize libovsdb vswitchd client: %w" , err )
588+ if ovsClient == nil {
589+ ovsClient , err = libovsdb .NewOVSClient (ctx .Done ())
590+ if err != nil {
591+ return fmt .Errorf ("failed to initialize libovsdb vswitchd client: %w" , err )
592+ }
581593 }
582594 if config .Metrics .ExportOVSMetrics {
583595 metrics .RegisterOvsMetricsWithOvnMetrics (ovsClient , metricsScrapeInterval , ctx .Done ())
0 commit comments