in pkg/dns/dns.go [432:460]
func (kd *KubeDNS) handleEndpointDelete(obj interface{}) {
endpoints, ok := obj.(*v1.Endpoints)
if !ok {
klog.Errorf("obj type assertion failed! Expected 'v1.Endpoints', got %T", obj)
return
}
svc, err := kd.getServiceFromEndpoints(endpoints)
if err != nil {
klog.Errorf("Error from getServiceFromEndpoints(%v): %v", endpoints.Name, err)
return
}
if svc != nil {
if !util.IsServiceIPSet(svc) {
kd.cacheLock.Lock()
defer kd.cacheLock.Unlock()
// When endpoints for Named headless services deleted, delete old reverse dns records.
for idx := range endpoints.Subsets {
for subIdx := range endpoints.Subsets[idx].Addresses {
address := &endpoints.Subsets[idx].Addresses[subIdx]
endpointIP := address.IP
if _, has := getHostname(address); has {
delete(kd.reverseRecordMap, endpointIP)
}
}
}
}
}
}