diff --git a/controllers/kustomization_healthcheck.go b/controllers/kustomization_healthcheck.go index 81291f3ca..45cf47e82 100644 --- a/controllers/kustomization_healthcheck.go +++ b/controllers/kustomization_healthcheck.go @@ -60,6 +60,7 @@ func (hc *KustomizeHealthCheck) Assess(pollInterval time.Duration) error { eventsChan := hc.statusPoller.Poll(ctx, objMetadata, opts) coll := collector.NewResourceStatusCollector(objMetadata) statusErrs := make(map[object.ObjMetadata]error) + lastStatus := make(map[object.ObjMetadata]*event.ResourceStatus) done := coll.ListenWithObserver(eventsChan, collector.ObserverFunc( func(statusCollector *collector.ResourceStatusCollector, e event.Event) { var rss []*event.ResourceStatus @@ -69,6 +70,7 @@ func (hc *KustomizeHealthCheck) Assess(pollInterval time.Duration) error { } else { // delete the most recently recorded error for this resources as it's not valid, anymore now delete(statusErrs, rs.Identifier) + lastStatus[rs.Identifier] = rs } rss = append(rss, rs) } @@ -97,7 +99,9 @@ func (hc *KustomizeHealthCheck) Assess(pollInterval time.Duration) error { } var errsArr []string for res, err := range statusErrs { - errsArr = append(errsArr, fmt.Sprintf("%s: %s", hc.objMetadataToString(res), err)) + if lastStatus[res].Status != status.CurrentStatus { + errsArr = append(errsArr, fmt.Sprintf("%s: %s", hc.objMetadataToString(res), err)) + } } return fmt.Errorf("Health check failed for [%v]: %v", strings.Join(ids, ", "), strings.Join(errsArr, ", ")) }