diff --git a/federation/pkg/federation-controller/service/servicecontroller.go b/federation/pkg/federation-controller/service/servicecontroller.go index 17911b3d3d..61c0418d9b 100644 --- a/federation/pkg/federation-controller/service/servicecontroller.go +++ b/federation/pkg/federation-controller/service/servicecontroller.go @@ -724,22 +724,24 @@ func (s *ServiceController) lockedUpdateDNSRecords(service *cachedService, clust if !wantsDNSRecords(service.appliedState) { return nil } - ensuredCount := 0 + + var err error + missedCount := 0 + unensuredCount := 0 for key := range s.clusterCache.clientMap { for _, clusterName := range clusterNames { if key == clusterName { - err := s.ensureDnsRecords(clusterName, service) - if err != nil { - glog.Errorf("Failed to ensure DNS records for service %v in cluster %s due to %v", service, clusterName, err) - } else { - ensuredCount += 1 + if err = s.ensureDnsRecords(clusterName, service); err != nil { + unensuredCount += 1 } + } else { + missedCount += 1 } } } - if ensuredCount < len(clusterNames) { - return fmt.Errorf("Failed to update DNS records for %d of %d clusters for service %v due to missing clients for those clusters", - len(clusterNames)-ensuredCount, len(clusterNames), service) + if missedCount > 0 || unensuredCount > 0 { + return fmt.Errorf("Failed to update DNS records for %d clusters for service %v due to missing clients[missed count: %d] or ensuring DNS records error[unensured count: %d] %v", + len(clusterNames), service, missedCount, unensuredCount, err) } return nil }