Skip to content

Commit f1dcfd9

Browse files
authored
Filter net errors when increasing seed reconcile error metric (#761)
1 parent e1bfd4c commit f1dcfd9

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

pkg/controller/ground.go

+19-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package controller
33
import (
44
"context"
55
"fmt"
6+
"net"
67
"path"
78
"reflect"
89
"strings"
@@ -482,13 +483,29 @@ func (op *GroundControl) handler(key string) error {
482483
}
483484

484485
func (op *GroundControl) reconcileSeed(kluster *v1.Kluster, projectClient project.ProjectClient, helmValues map[string]interface{}) error {
486+
isNetErr := func(err error) bool {
487+
current := err
488+
for current != nil {
489+
_, ok := current.(net.Error)
490+
if ok {
491+
return true
492+
}
493+
current = errors.Unwrap(current)
494+
}
495+
return false
496+
}
497+
485498
seedReconciler := ground.NewSeedReconciler(&op.Clients, kluster, op.Logger)
486499
if err := seedReconciler.EnrichHelmValuesForSeed(projectClient, helmValues); err != nil {
487-
metrics.SeedReconciliationFailuresTotal.With(prometheus.Labels{"kluster_name": kluster.Spec.Name}).Inc()
500+
if !isNetErr(err) {
501+
metrics.SeedReconciliationFailuresTotal.With(prometheus.Labels{"kluster_name": kluster.Spec.Name}).Inc()
502+
}
488503
return fmt.Errorf("Enrichting seed values failed: %w", err)
489504
}
490505
if err := seedReconciler.ReconcileSeeding(path.Join(op.Config.Helm.ChartDirectory, "seed"), helmValues); err != nil {
491-
metrics.SeedReconciliationFailuresTotal.With(prometheus.Labels{"kluster_name": kluster.Spec.Name}).Inc()
506+
if !isNetErr(err) {
507+
metrics.SeedReconciliationFailuresTotal.With(prometheus.Labels{"kluster_name": kluster.Spec.Name}).Inc()
508+
}
492509
return fmt.Errorf("Seeding reconciliation failed: %w", err)
493510
}
494511
op.Logger.Log("msg", "reconciled seeding successfully", "kluster", kluster.GetName(), "v", 2)

0 commit comments

Comments
 (0)