@@ -83,15 +83,9 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
83
83
return ctrl.Result {}, err
84
84
}
85
85
86
- tenantsToDisown , err := r .getTenantsReferencingCollectorButNotSelected (ctx , collector , tenants )
87
- if err != nil {
88
- return ctrl.Result {}, err
89
- }
86
+ tenantsToDisown := r .getTenantsReferencingCollectorButNotSelected (ctx , collector , tenants )
90
87
91
- err = r .disownTenants (ctx , tenantsToDisown )
92
- if err != nil {
93
- return ctrl.Result {}, err
94
- }
88
+ r .disownTenants (ctx , tenantsToDisown )
95
89
96
90
tenantNames := []string {}
97
91
@@ -101,7 +95,6 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
101
95
102
96
logger .Info ("Setting collector status" )
103
97
104
-
105
98
subscriptions := []v1alpha1.Subscription {}
106
99
107
100
for _ , tenant := range tenants {
@@ -124,15 +117,9 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
124
117
return ctrl.Result {}, err
125
118
}
126
119
127
- subscriptionsToDisown , err := r .getSubscriptionsReferencingTenantButNotSelected (ctx , & tenant , subscriptionsForTenant )
128
- if err != nil {
129
- return ctrl.Result {}, err
130
- }
120
+ subscriptionsToDisown := r .getSubscriptionsReferencingTenantButNotSelected (ctx , & tenant , subscriptionsForTenant )
131
121
132
- err = r .disownSubscriptions (ctx , subscriptionsToDisown )
133
- if err != nil {
134
- return ctrl.Result {}, err
135
- }
122
+ r .disownSubscriptions (ctx , subscriptionsToDisown )
136
123
137
124
subscriptions = append (subscriptions , subscriptionsForTenant ... )
138
125
@@ -159,7 +146,6 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
159
146
slices .Sort (logsourceNamespacesForTenant )
160
147
tenant .Status .LogSourceNamespaces = logsourceNamespacesForTenant
161
148
162
-
163
149
if err := r .Status ().Update (ctx , & tenant ); err != nil {
164
150
return ctrl.Result {}, err
165
151
}
@@ -172,8 +158,11 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
172
158
173
159
collector .Status .Tenants = tenantNames
174
160
175
- r .Status ().Update (ctx , collector )
176
161
logger .Info ("Setting collector status" )
162
+ err = r .Status ().Update (ctx , collector )
163
+ if err != nil {
164
+ return ctrl.Result {}, err
165
+ }
177
166
178
167
outputs , err := r .getAllOutputs (ctx )
179
168
if err != nil {
@@ -292,7 +281,10 @@ func (r *CollectorReconciler) SetupWithManager(mgr ctrl.Manager) error {
292
281
tenant , _ := object .(* v1alpha1.Tenant )
293
282
294
283
collectors := v1alpha1.CollectorList {}
295
- r .List (ctx , & collectors )
284
+ err := r .List (ctx , & collectors )
285
+ if err != nil {
286
+ return nil
287
+ }
296
288
297
289
for _ , collector := range collectors .Items {
298
290
tenantsForCollector , err := r .getTenantsMatchingSelectors (ctx , collector .Spec .TenantSelector )
@@ -310,10 +302,7 @@ func (r *CollectorReconciler) SetupWithManager(mgr ctrl.Manager) error {
310
302
}
311
303
}
312
304
313
- tenantsToDisown , err := r .getTenantsReferencingCollectorButNotSelected (ctx , & collector , tenantsForCollector )
314
- if err != nil {
315
- return nil
316
- }
305
+ tenantsToDisown := r .getTenantsReferencingCollectorButNotSelected (ctx , & collector , tenantsForCollector )
317
306
318
307
for _ , t := range tenantsToDisown {
319
308
if t .Name == tenant .Name {
@@ -333,7 +322,10 @@ func (r *CollectorReconciler) SetupWithManager(mgr ctrl.Manager) error {
333
322
subscription , _ := object .(* v1alpha1.Subscription )
334
323
335
324
tenants := v1alpha1.TenantList {}
336
- r .List (ctx , & tenants )
325
+ err := r .List (ctx , & tenants )
326
+ if err != nil {
327
+ return nil
328
+ }
337
329
338
330
for _ , tenant := range tenants .Items {
339
331
subscriptionsForTenant , err := r .getSubscriptionsForTenant (ctx , & tenant )
@@ -351,10 +343,7 @@ func (r *CollectorReconciler) SetupWithManager(mgr ctrl.Manager) error {
351
343
}
352
344
}
353
345
354
- subscriptionstoDisown , err := r .getSubscriptionsReferencingTenantButNotSelected (ctx , & tenant , subscriptionsForTenant )
355
- if err != nil {
356
- return nil
357
- }
346
+ subscriptionstoDisown := r .getSubscriptionsReferencingTenantButNotSelected (ctx , & tenant , subscriptionsForTenant )
358
347
359
348
for _ , s := range subscriptionstoDisown {
360
349
if s .Name == subscription .Name {
@@ -411,6 +400,7 @@ func (r *CollectorReconciler) reconcileServiceAccount(ctx context.Context, colle
411
400
412
401
return v1alpha1.NamespacedName {Namespace : serviceAccount .Namespace , Name : serviceAccount .Name }, nil
413
402
}
403
+
414
404
func (r * CollectorReconciler ) reconcileClusterRoleBinding (ctx context.Context , collector * v1alpha1.Collector ) error {
415
405
logger := log .FromContext (ctx )
416
406
@@ -473,7 +463,6 @@ func (r *CollectorReconciler) reconcileClusterRole(ctx context.Context, collecto
473
463
return err
474
464
}
475
465
476
-
477
466
func getSubscriptionNamesFromSubscription (subscriptions []v1alpha1.Subscription ) []v1alpha1.NamespacedName {
478
467
subscriptionNames := make ([]v1alpha1.NamespacedName , len (subscriptions ))
479
468
for i , subscription := range subscriptions {
@@ -502,15 +491,17 @@ func (r *CollectorReconciler) getTenantsMatchingSelectors(ctx context.Context, l
502
491
return tenantsForSelector .Items , nil
503
492
}
504
493
505
- func (r * CollectorReconciler ) getTenantsReferencingCollectorButNotSelected (ctx context.Context , collector * v1alpha1.Collector , selectedTenants []v1alpha1.Tenant ) ([]v1alpha1.Tenant , error ) {
494
+ func (r * CollectorReconciler ) getTenantsReferencingCollectorButNotSelected (ctx context.Context , collector * v1alpha1.Collector , selectedTenants []v1alpha1.Tenant ) []v1alpha1.Tenant {
495
+ logger := log .FromContext (ctx )
506
496
var tenantsReferencing v1alpha1.TenantList
507
497
508
498
listOpts := & client.ListOptions {
509
499
FieldSelector : fields .OneTermEqualSelector (collectorReferenceField , collector .Name ),
510
500
}
511
501
512
502
if err := r .Client .List (ctx , & tenantsReferencing , listOpts ); client .IgnoreNotFound (err ) != nil {
513
- return nil , err
503
+ logger .Error (err , "failed to list tenants that need to be detached from collector" )
504
+ return nil
514
505
}
515
506
516
507
tenantsToDisown := []v1alpha1.Tenant {}
@@ -531,32 +522,32 @@ func (r *CollectorReconciler) getTenantsReferencingCollectorButNotSelected(ctx c
531
522
532
523
}
533
524
534
- return tenantsToDisown , nil
525
+ return tenantsToDisown
535
526
536
527
}
537
528
538
- func (r * CollectorReconciler ) disownTenants (ctx context.Context , tenantsToDisown []v1alpha1.Tenant ) error {
529
+ func (r * CollectorReconciler ) disownTenants (ctx context.Context , tenantsToDisown []v1alpha1.Tenant ) {
539
530
logger := log .FromContext (ctx )
540
531
for _ , tenant := range tenantsToDisown {
541
532
tenant .Status .Collector = ""
542
533
err := r .Client .Status ().Update (ctx , & tenant )
543
534
if err != nil {
544
- return err
535
+ logger . Error ( err , fmt . Sprintf ( "failed to detach tenant %s from collector" , tenant . Name ))
545
536
}
546
537
logger .Info ("Disowning tenant" , "tenant" , tenant .Name )
547
538
}
548
-
549
- return nil
550
539
}
551
540
552
- func (r * CollectorReconciler ) getSubscriptionsReferencingTenantButNotSelected (ctx context.Context , tenant * v1alpha1.Tenant , selectedSubscriptions []v1alpha1.Subscription ) ([]v1alpha1.Subscription , error ) {
541
+ func (r * CollectorReconciler ) getSubscriptionsReferencingTenantButNotSelected (ctx context.Context , tenant * v1alpha1.Tenant , selectedSubscriptions []v1alpha1.Subscription ) []v1alpha1.Subscription {
542
+ logger := log .FromContext (ctx )
553
543
var subscriptionsReferencing v1alpha1.SubscriptionList
554
544
listOpts := & client.ListOptions {
555
545
FieldSelector : fields .OneTermEqualSelector (tenantReferenceField , tenant .Name ),
556
546
}
557
547
558
548
if err := r .Client .List (ctx , & subscriptionsReferencing , listOpts ); client .IgnoreNotFound (err ) != nil {
559
- return nil , err
549
+ logger .Error (err , "failed to list subscriptions that need to be detached from tenant" )
550
+ return nil
560
551
}
561
552
562
553
var subscriptionsToDisown []v1alpha1.Subscription
@@ -577,22 +568,21 @@ func (r *CollectorReconciler) getSubscriptionsReferencingTenantButNotSelected(ct
577
568
578
569
}
579
570
580
- return subscriptionsToDisown , nil
571
+ return subscriptionsToDisown
581
572
582
573
}
583
574
584
- func (r * CollectorReconciler ) disownSubscriptions (ctx context.Context , subscriptionsToDisown []v1alpha1.Subscription ) error {
575
+ func (r * CollectorReconciler ) disownSubscriptions (ctx context.Context , subscriptionsToDisown []v1alpha1.Subscription ) {
585
576
logger := log .FromContext (ctx )
586
577
for _ , subscription := range subscriptionsToDisown {
587
578
subscription .Status .Tenant = ""
588
579
err := r .Client .Status ().Update (ctx , & subscription )
589
580
if err != nil {
590
- return err
581
+ logger . Error ( err , fmt . Sprintf ( "failed to detach subscription %s/%s from collector" , subscription . Namespace , subscription . Name ))
591
582
}
592
583
logger .Info ("Disowning subscription" , "subscription" , fmt .Sprintf ("%s/%s" , subscription .Namespace , subscription .Name ))
593
584
}
594
585
595
- return nil
596
586
}
597
587
598
588
func (r * CollectorReconciler ) getAllOutputs (ctx context.Context ) ([]v1alpha1.OtelOutput , error ) {
@@ -632,7 +622,7 @@ func (r *CollectorReconciler) getSubscriptionsForTenant(ctx context.Context, ten
632
622
633
623
}
634
624
635
- var validSubscriptions []v1alpha1.Subscription
625
+ validSubscriptions := []v1alpha1.Subscription {}
636
626
637
627
for _ , subscription := range selectedSubscriptions {
638
628
if subscription .Status .Tenant != "" && subscription .Status .Tenant != tenant .Name {
@@ -644,8 +634,11 @@ func (r *CollectorReconciler) getSubscriptionsForTenant(ctx context.Context, ten
644
634
subscription .Status .Tenant = tenant .Name
645
635
validSubscriptions = append (validSubscriptions , subscription )
646
636
647
- r .Status ().Update (ctx , & subscription )
648
637
logger .Info ("Setting subscription status" )
638
+ err := r .Status ().Update (ctx , & subscription )
639
+ if err != nil {
640
+ logger .Error (err , fmt .Sprintf ("failed to set subscription (%s/%s) -> tenant (%s) reference" , subscription .Namespace , subscription .Name , tenant .Name ))
641
+ }
649
642
650
643
}
651
644
0 commit comments