@@ -30,6 +30,7 @@ type ExtProcServerRunner struct {
30
30
Scheme * runtime.Scheme
31
31
Config * rest.Config
32
32
Datastore * backend.K8sDatastore
33
+ manager * ctrl.Manager
33
34
}
34
35
35
36
// Setup creates the reconcilers for pools, models, and endpointSlices and starts the manager.
@@ -39,6 +40,7 @@ func (r *ExtProcServerRunner) Setup() {
39
40
if err != nil {
40
41
klog .Fatalf ("Failed to create controller manager: %v" , err )
41
42
}
43
+ r .manager = & mgr
42
44
43
45
// Create the controllers and register them with the manager
44
46
if err := (& backend.InferencePoolReconciler {
@@ -77,16 +79,6 @@ func (r *ExtProcServerRunner) Setup() {
77
79
}).SetupWithManager (mgr ); err != nil {
78
80
klog .Fatalf ("Failed setting up EndpointSliceReconciler: %v" , err )
79
81
}
80
-
81
- // Start the controller manager. Blocking and will return when shutdown is complete.
82
- errChan := make (chan error )
83
- klog .Infof ("Starting controller manager" )
84
- go func () {
85
- if err := mgr .Start (ctrl .SetupSignalHandler ()); err != nil {
86
- klog .Error (err , "Error running manager" )
87
- errChan <- err
88
- }
89
- }()
90
82
}
91
83
92
84
// Start starts the Envoy external processor server in a goroutine.
@@ -123,3 +115,16 @@ func (r *ExtProcServerRunner) Start(
123
115
}()
124
116
return svr
125
117
}
118
+
119
+ func (r * ExtProcServerRunner ) StartManager () {
120
+ if r .manager == nil {
121
+ klog .Fatalf ("Runner has no manager setup to run: %v" , r )
122
+ }
123
+ // Start the controller manager. Blocking and will return when shutdown is complete.
124
+ klog .Infof ("Starting controller manager" )
125
+ mgr := * r .manager
126
+ if err := mgr .Start (ctrl .SetupSignalHandler ()); err != nil {
127
+ klog .Fatalf ("Error starting controller manager: %v" , err )
128
+ }
129
+ klog .Info ("Controller manager shutting down" )
130
+ }
0 commit comments