check ready addresses

This commit is contained in:
GLYASAI 2020-10-22 11:13:12 +08:00
parent 42b5bd6474
commit 577bd9be90

View File

@ -718,20 +718,27 @@ func (s *k8sStore) ingressIsValid(ing *extensions.Ingress) bool {
logrus.Errorf("Cant not convert %v to %v", reflect.TypeOf(item), reflect.TypeOf(endpoint))
return false
}
if endpoint.Subsets == nil || len(endpoint.Subsets) == 0 {
if len(endpoint.Subsets) == 0 {
logrus.Debugf("Endpoints(%s) is empty, ignore it", endpointKey)
return false
}
for _, ep := range endpoint.Subsets {
if len(ep.Addresses) == 0 {
logrus.Debugf("Endpoints(%s) is empty, ignore it", endpointKey)
return false
}
if !hasReadyAddresses(endpoint) {
logrus.Debugf("Endpoints(%s) is empty, ignore it", endpointKey)
return false
}
return true
}
func hasReadyAddresses(endpoints *corev1.Endpoints) bool {
for _, ep := range endpoints.Subsets {
if len(ep.Addresses) > 0 {
return true
}
}
return false
}
// GetIngress returns the Ingress matching key.
func (s *k8sStore) GetIngress(key string) (*extensions.Ingress, error) {
return s.listers.Ingress.ByKey(key)