Skip to content

Commit fccde59

Browse files
log non-critical errors, but don't fail
Signed-off-by: Kristof Gyuracz <[email protected]>
1 parent b0731f6 commit fccde59

File tree

1 file changed

+25
-38
lines changed

1 file changed

+25
-38
lines changed

internal/controller/telemetry/collector_controller.go

+25-38
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,9 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
8383
return ctrl.Result{}, err
8484
}
8585

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)
9087

91-
err = r.disownTenants(ctx, tenantsToDisown)
92-
if err != nil {
93-
return ctrl.Result{}, err
94-
}
88+
r.disownTenants(ctx, tenantsToDisown)
9589

9690
tenantNames := []string{}
9791

@@ -101,7 +95,6 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
10195

10296
logger.Info("Setting collector status")
10397

104-
10598
subscriptions := []v1alpha1.Subscription{}
10699

107100
for _, tenant := range tenants {
@@ -124,15 +117,9 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
124117
return ctrl.Result{}, err
125118
}
126119

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)
131121

132-
err = r.disownSubscriptions(ctx, subscriptionsToDisown)
133-
if err != nil {
134-
return ctrl.Result{}, err
135-
}
122+
r.disownSubscriptions(ctx, subscriptionsToDisown)
136123

137124
subscriptions = append(subscriptions, subscriptionsForTenant...)
138125

@@ -159,7 +146,6 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
159146
slices.Sort(logsourceNamespacesForTenant)
160147
tenant.Status.LogSourceNamespaces = logsourceNamespacesForTenant
161148

162-
163149
if err := r.Status().Update(ctx, &tenant); err != nil {
164150
return ctrl.Result{}, err
165151
}
@@ -172,8 +158,11 @@ func (r *CollectorReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
172158

173159
collector.Status.Tenants = tenantNames
174160

175-
r.Status().Update(ctx, collector)
176161
logger.Info("Setting collector status")
162+
err = r.Status().Update(ctx, collector)
163+
if err != nil {
164+
return ctrl.Result{}, err
165+
}
177166

178167
outputs, err := r.getAllOutputs(ctx)
179168
if err != nil {
@@ -310,10 +299,7 @@ func (r *CollectorReconciler) SetupWithManager(mgr ctrl.Manager) error {
310299
}
311300
}
312301

313-
tenantsToDisown, err := r.getTenantsReferencingCollectorButNotSelected(ctx, &collector, tenantsForCollector)
314-
if err != nil {
315-
return nil
316-
}
302+
tenantsToDisown := r.getTenantsReferencingCollectorButNotSelected(ctx, &collector, tenantsForCollector)
317303

318304
for _, t := range tenantsToDisown {
319305
if t.Name == tenant.Name {
@@ -351,7 +337,7 @@ func (r *CollectorReconciler) SetupWithManager(mgr ctrl.Manager) error {
351337
}
352338
}
353339

354-
subscriptionstoDisown, err := r.getSubscriptionsReferencingTenantButNotSelected(ctx, &tenant, subscriptionsForTenant)
340+
subscriptionstoDisown := r.getSubscriptionsReferencingTenantButNotSelected(ctx, &tenant, subscriptionsForTenant)
355341
if err != nil {
356342
return nil
357343
}
@@ -411,6 +397,7 @@ func (r *CollectorReconciler) reconcileServiceAccount(ctx context.Context, colle
411397

412398
return v1alpha1.NamespacedName{Namespace: serviceAccount.Namespace, Name: serviceAccount.Name}, nil
413399
}
400+
414401
func (r *CollectorReconciler) reconcileClusterRoleBinding(ctx context.Context, collector *v1alpha1.Collector) error {
415402
logger := log.FromContext(ctx)
416403

@@ -473,7 +460,6 @@ func (r *CollectorReconciler) reconcileClusterRole(ctx context.Context, collecto
473460
return err
474461
}
475462

476-
477463
func getSubscriptionNamesFromSubscription(subscriptions []v1alpha1.Subscription) []v1alpha1.NamespacedName {
478464
subscriptionNames := make([]v1alpha1.NamespacedName, len(subscriptions))
479465
for i, subscription := range subscriptions {
@@ -502,15 +488,17 @@ func (r *CollectorReconciler) getTenantsMatchingSelectors(ctx context.Context, l
502488
return tenantsForSelector.Items, nil
503489
}
504490

505-
func (r *CollectorReconciler) getTenantsReferencingCollectorButNotSelected(ctx context.Context, collector *v1alpha1.Collector, selectedTenants []v1alpha1.Tenant) ([]v1alpha1.Tenant, error) {
491+
func (r *CollectorReconciler) getTenantsReferencingCollectorButNotSelected(ctx context.Context, collector *v1alpha1.Collector, selectedTenants []v1alpha1.Tenant) []v1alpha1.Tenant {
492+
logger := log.FromContext(ctx)
506493
var tenantsReferencing v1alpha1.TenantList
507494

508495
listOpts := &client.ListOptions{
509496
FieldSelector: fields.OneTermEqualSelector(collectorReferenceField, collector.Name),
510497
}
511498

512499
if err := r.Client.List(ctx, &tenantsReferencing, listOpts); client.IgnoreNotFound(err) != nil {
513-
return nil, err
500+
logger.Error(err, "failed to list tenants that need to be detached from collector")
501+
return nil
514502
}
515503

516504
tenantsToDisown := []v1alpha1.Tenant{}
@@ -531,32 +519,32 @@ func (r *CollectorReconciler) getTenantsReferencingCollectorButNotSelected(ctx c
531519

532520
}
533521

534-
return tenantsToDisown, nil
522+
return tenantsToDisown
535523

536524
}
537525

538-
func (r *CollectorReconciler) disownTenants(ctx context.Context, tenantsToDisown []v1alpha1.Tenant) error {
526+
func (r *CollectorReconciler) disownTenants(ctx context.Context, tenantsToDisown []v1alpha1.Tenant) {
539527
logger := log.FromContext(ctx)
540528
for _, tenant := range tenantsToDisown {
541529
tenant.Status.Collector = ""
542530
err := r.Client.Status().Update(ctx, &tenant)
543531
if err != nil {
544-
return err
532+
logger.Error(err, fmt.Sprintf("failed to detach tenant %s from collector", tenant.Name))
545533
}
546534
logger.Info("Disowning tenant", "tenant", tenant.Name)
547535
}
548-
549-
return nil
550536
}
551537

552-
func (r *CollectorReconciler) getSubscriptionsReferencingTenantButNotSelected(ctx context.Context, tenant *v1alpha1.Tenant, selectedSubscriptions []v1alpha1.Subscription) ([]v1alpha1.Subscription, error) {
538+
func (r *CollectorReconciler) getSubscriptionsReferencingTenantButNotSelected(ctx context.Context, tenant *v1alpha1.Tenant, selectedSubscriptions []v1alpha1.Subscription) []v1alpha1.Subscription {
539+
logger := log.FromContext(ctx)
553540
var subscriptionsReferencing v1alpha1.SubscriptionList
554541
listOpts := &client.ListOptions{
555542
FieldSelector: fields.OneTermEqualSelector(tenantReferenceField, tenant.Name),
556543
}
557544

558545
if err := r.Client.List(ctx, &subscriptionsReferencing, listOpts); client.IgnoreNotFound(err) != nil {
559-
return nil, err
546+
logger.Error(err, "failed to list subscriptions that need to be detached from tenant")
547+
return nil
560548
}
561549

562550
var subscriptionsToDisown []v1alpha1.Subscription
@@ -577,22 +565,21 @@ func (r *CollectorReconciler) getSubscriptionsReferencingTenantButNotSelected(ct
577565

578566
}
579567

580-
return subscriptionsToDisown, nil
568+
return subscriptionsToDisown
581569

582570
}
583571

584-
func (r *CollectorReconciler) disownSubscriptions(ctx context.Context, subscriptionsToDisown []v1alpha1.Subscription) error {
572+
func (r *CollectorReconciler) disownSubscriptions(ctx context.Context, subscriptionsToDisown []v1alpha1.Subscription) {
585573
logger := log.FromContext(ctx)
586574
for _, subscription := range subscriptionsToDisown {
587575
subscription.Status.Tenant = ""
588576
err := r.Client.Status().Update(ctx, &subscription)
589577
if err != nil {
590-
return err
578+
logger.Error(err, fmt.Sprintf("failed to detach subscription %s/%s from collector", subscription.Namespace, subscription.Name))
591579
}
592580
logger.Info("Disowning subscription", "subscription", fmt.Sprintf("%s/%s", subscription.Namespace, subscription.Name))
593581
}
594582

595-
return nil
596583
}
597584

598585
func (r *CollectorReconciler) getAllOutputs(ctx context.Context) ([]v1alpha1.OtelOutput, error) {

0 commit comments

Comments
 (0)