@@ -66,7 +66,6 @@ type ClusterController struct {
66
66
ControllerManagersLock sync.Mutex
67
67
68
68
RootResourceManager * utils.ResourceManager
69
- mgr manager.Manager
70
69
71
70
GlobalLeafManager leafUtils.LeafResourceManager
72
71
}
@@ -116,9 +115,6 @@ func (c *ClusterController) SetupWithManager(mgr manager.Manager) error {
116
115
c .ManagerCancelFuncs = make (map [string ]* context.CancelFunc )
117
116
c .ControllerManagers = make (map [string ]manager.Manager )
118
117
c .Logger = mgr .GetLogger ()
119
-
120
- // TODO this may not be a good idea
121
- c .mgr = mgr
122
118
return controllerruntime .NewControllerManagedBy (mgr ).
123
119
Named (ControllerName ).
124
120
WithOptions (controller.Options {}).
@@ -246,12 +242,13 @@ func (c *ClusterController) clearClusterControllers(cluster *clusterlinkv1alpha1
246
242
}
247
243
248
244
func (c * ClusterController ) setupControllers (mgr manager.Manager , cluster * clusterlinkv1alpha1.Cluster , node * corev1.Node , clientDynamic * dynamic.DynamicClient , leafClient kubernetes.Interface , kosmosClient kosmosversioned.Interface ) error {
249
- c .GlobalLeafManager .AddLeafResource (cluster .Name , & leafUtils.LeafResource {
245
+ nodeName := fmt .Sprintf ("%s%s" , utils .KosmosNodePrefix , cluster .Name )
246
+ c .GlobalLeafManager .AddLeafResource (nodeName , & leafUtils.LeafResource {
250
247
Client : mgr .GetClient (),
251
248
DynamicClient : clientDynamic ,
252
249
Clientset : leafClient ,
253
- NodeName : cluster . Name ,
254
- Namespace : cluster . Spec . Namespace ,
250
+ NodeName : nodeName ,
251
+ Namespace : "" ,
255
252
IgnoreLabels : strings .Split ("" , "," ),
256
253
EnableServiceAccount : true ,
257
254
})
@@ -271,23 +268,24 @@ func (c *ClusterController) setupControllers(mgr manager.Manager, cluster *clust
271
268
return fmt .Errorf ("error starting %s: %v" , controllers .NodeLeaseControllerName , err )
272
269
}
273
270
274
- serviceImportController := & mcs.ServiceImportController {
275
- LeafClient : mgr .GetClient (),
276
- RootClient : c .Root ,
277
- RootKosmosClient : kosmosClient ,
278
- EventRecorder : mgr .GetEventRecorderFor (mcs .LeafServiceImportControllerName ),
279
- Logger : mgr .GetLogger (),
280
- LeafNodeName : cluster .Name ,
281
- RootResourceManager : c .RootResourceManager ,
282
- }
283
-
284
- if err := serviceImportController .AddController (mgr ); err != nil {
285
- return fmt .Errorf ("error starting %s: %v" , mcs .LeafServiceImportControllerName , err )
271
+ if c .Options .MultiClusterService {
272
+ serviceImportController := & mcs.ServiceImportController {
273
+ LeafClient : mgr .GetClient (),
274
+ RootClient : c .Root ,
275
+ RootKosmosClient : kosmosClient ,
276
+ EventRecorder : mgr .GetEventRecorderFor (mcs .LeafServiceImportControllerName ),
277
+ Logger : mgr .GetLogger (),
278
+ LeafNodeName : nodeName ,
279
+ RootResourceManager : c .RootResourceManager ,
280
+ }
281
+ if err := serviceImportController .AddController (mgr ); err != nil {
282
+ return fmt .Errorf ("error starting %s: %v" , mcs .LeafServiceImportControllerName , err )
283
+ }
286
284
}
287
285
288
286
leafPodController := podcontrollers.LeafPodReconciler {
289
287
RootClient : c .Root ,
290
- Namespace : cluster . Spec . Namespace ,
288
+ Namespace : "" ,
291
289
}
292
290
293
291
if err := leafPodController .SetupWithManager (mgr ); err != nil {
@@ -313,34 +311,34 @@ func (c *ClusterController) setupStorageControllers(mgr manager.Manager, node *c
313
311
return fmt .Errorf ("error starting leaf pvc controller %v" , err )
314
312
}
315
313
316
- leafPVontroller := pv.LeafPVController {
314
+ leafPVController := pv.LeafPVController {
317
315
LeafClient : mgr .GetClient (),
318
316
RootClient : c .Root ,
319
317
RootClientSet : c .RootClient ,
320
318
NodeName : node .Name ,
321
319
}
322
- if err := leafPVontroller .SetupWithManager (mgr ); err != nil {
320
+ if err := leafPVController .SetupWithManager (mgr ); err != nil {
323
321
return fmt .Errorf ("error starting leaf pv controller %v" , err )
324
322
}
325
-
326
323
return nil
327
324
}
328
325
329
326
func (c * ClusterController ) createNode (ctx context.Context , cluster * clusterlinkv1alpha1.Cluster , leafClient kubernetes.Interface ) (* corev1.Node , error ) {
327
+ nodeName := fmt .Sprintf ("%s%s" , utils .KosmosNodePrefix , cluster .Name )
330
328
serverVersion , err := leafClient .Discovery ().ServerVersion ()
331
329
if err != nil {
332
- klog .Errorf ("create node failed, can not connect to leaf %s" , cluster . Name )
330
+ klog .Errorf ("create node failed, can not connect to leaf %s" , nodeName )
333
331
return nil , err
334
332
}
335
333
336
- node , err := c .RootClient .CoreV1 ().Nodes ().Get (ctx , cluster . Name , metav1.GetOptions {})
334
+ node , err := c .RootClient .CoreV1 ().Nodes ().Get (ctx , nodeName , metav1.GetOptions {})
337
335
if err != nil && ! errors .IsNotFound (err ) {
338
- klog .Errorf ("create node failed, can not get node %s" , cluster . Name )
336
+ klog .Errorf ("create node failed, can not get node %s" , nodeName )
339
337
return nil , err
340
338
}
341
339
342
340
if err != nil && errors .IsNotFound (err ) {
343
- node = utils .BuildNodeTemplate (cluster )
341
+ node = utils .BuildNodeTemplate (nodeName )
344
342
node .Status .NodeInfo .KubeletVersion = serverVersion .GitVersion
345
343
node .Status .DaemonEndpoints = corev1.NodeDaemonEndpoints {
346
344
KubeletEndpoint : corev1.DaemonEndpoint {
@@ -349,7 +347,7 @@ func (c *ClusterController) createNode(ctx context.Context, cluster *clusterlink
349
347
}
350
348
node , err = c .RootClient .CoreV1 ().Nodes ().Create (ctx , node , metav1.CreateOptions {})
351
349
if err != nil && ! errors .IsAlreadyExists (err ) {
352
- klog .Errorf ("create node %s failed, err: %v" , cluster . Name , err )
350
+ klog .Errorf ("create node %s failed, err: %v" , nodeName , err )
353
351
return nil , err
354
352
}
355
353
}
0 commit comments