func()

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)
					}
				}
			}
		}
	}
}