@@ -66,9 +66,9 @@ type DaemonSetManager struct {
6666 informer cache.SharedIndexInformer
6767 mutationCache cache.MutationCache
6868
69+ daemonsetPodManager * DaemonSetPodManager
6970 resourceClaimTemplateManager * DaemonSetResourceClaimTemplateManager
7071 cleanupManager * CleanupManager [* appsv1.DaemonSet ]
71- podManagers map [string ]* DaemonSetPodManager
7272}
7373
7474func NewDaemonSetManager (config * ManagerConfig , getComputeDomain GetComputeDomainFunc ) * DaemonSetManager {
@@ -84,10 +84,10 @@ func NewDaemonSetManager(config *ManagerConfig, getComputeDomain GetComputeDomai
8484 factory := informers .NewSharedInformerFactoryWithOptions (
8585 config .clientsets .Core ,
8686 informerResyncPeriod ,
87+ informers .WithNamespace (config .driverNamespace ),
8788 informers .WithTweakListOptions (func (opts * metav1.ListOptions ) {
8889 opts .LabelSelector = metav1 .FormatLabelSelector (labelSelector )
8990 }),
90- informers .WithNamespace (config .driverNamespace ),
9191 )
9292
9393 informer := factory .Apps ().V1 ().DaemonSets ().Informer ()
@@ -97,8 +97,8 @@ func NewDaemonSetManager(config *ManagerConfig, getComputeDomain GetComputeDomai
9797 getComputeDomain : getComputeDomain ,
9898 factory : factory ,
9999 informer : informer ,
100- podManagers : make (map [string ]* DaemonSetPodManager ),
101100 }
101+ m .daemonsetPodManager = NewDaemonSetPodManager (config , getComputeDomain )
102102 m .resourceClaimTemplateManager = NewDaemonSetResourceClaimTemplateManager (config , getComputeDomain )
103103 m .cleanupManager = NewCleanupManager [* appsv1.DaemonSet ](informer , getComputeDomain , m .cleanup )
104104
@@ -163,8 +163,8 @@ func (m *DaemonSetManager) Start(ctx context.Context) (rerr error) {
163163}
164164
165165func (m * DaemonSetManager ) Stop () error {
166- if err := m .removeAllPodManagers (); err != nil {
167- return fmt .Errorf ("error removing all Pod managers : %w" , err )
166+ if err := m .daemonsetPodManager . Stop (); err != nil {
167+ return fmt .Errorf ("error removing daemonset Pod manager : %w" , err )
168168 }
169169 if err := m .resourceClaimTemplateManager .Stop (); err != nil {
170170 return fmt .Errorf ("error stopping ResourceClaimTemplate manager: %w" , err )
@@ -266,16 +266,11 @@ func (m *DaemonSetManager) Delete(ctx context.Context, cdUID string) error {
266266 }
267267
268268 d := ds [0 ]
269- key := d .Spec .Selector .MatchLabels [computeDomainLabelKey ]
270269
271270 if err := m .resourceClaimTemplateManager .Delete (ctx , cdUID ); err != nil {
272271 return fmt .Errorf ("error deleting ResourceClaimTemplate: %w" , err )
273272 }
274273
275- if err := m .removePodManager (key ); err != nil {
276- return fmt .Errorf ("error removing Pod manager: %w" , err )
277- }
278-
279274 if d .GetDeletionTimestamp () != nil {
280275 return nil
281276 }
@@ -374,10 +369,6 @@ func (m *DaemonSetManager) onAddOrUpdate(ctx context.Context, obj any) error {
374369 return nil
375370 }
376371
377- if err := m .addPodManager (ctx , d .Spec .Selector , string (cd .UID )); err != nil {
378- return fmt .Errorf ("error adding Pod manager '%s/%s': %w" , d .Namespace , d .Name , err )
379- }
380-
381372 if int (d .Status .NumberReady ) != cd .Spec .NumNodes {
382373 return nil
383374 }
@@ -400,57 +391,3 @@ func (m *DaemonSetManager) cleanup(ctx context.Context, cdUID string) error {
400391 }
401392 return nil
402393}
403-
404- func (m * DaemonSetManager ) addPodManager (ctx context.Context , labelSelector * metav1.LabelSelector , computeDomainUID string ) error {
405- key := labelSelector .MatchLabels [computeDomainLabelKey ]
406-
407- if _ , exists := m .podManagers [key ]; exists {
408- return nil
409- }
410-
411- podManager := NewDaemonSetPodManager (m .config , labelSelector , m .getComputeDomain , computeDomainUID )
412-
413- if err := podManager .Start (ctx ); err != nil {
414- return fmt .Errorf ("error creating Pod manager: %w" , err )
415- }
416-
417- m .Lock ()
418- m .podManagers [key ] = podManager
419- m .Unlock ()
420-
421- return nil
422- }
423-
424- func (m * DaemonSetManager ) removePodManager (key string ) error {
425- if _ , exists := m .podManagers [key ]; ! exists {
426- return nil
427- }
428-
429- m .Lock ()
430- podManager := m .podManagers [key ]
431- m .Unlock ()
432-
433- if err := podManager .Stop (); err != nil {
434- return fmt .Errorf ("error stopping Pod manager: %w" , err )
435- }
436-
437- m .Lock ()
438- delete (m .podManagers , key )
439- m .Unlock ()
440-
441- return nil
442- }
443-
444- func (m * DaemonSetManager ) removeAllPodManagers () error {
445- m .Lock ()
446- for key , pm := range m .podManagers {
447- m .Unlock ()
448- if err := pm .Stop (); err != nil {
449- return fmt .Errorf ("error stopping Pod manager: %w" , err )
450- }
451- m .Lock ()
452- delete (m .podManagers , key )
453- }
454- m .Unlock ()
455- return nil
456- }
0 commit comments