plugin/kubernetes: skip deleting pods (#2853)

Don't add pods to our internal cache that are being deleted. This saves
a field in the struct as well.

Add (extra) comments about adding fields to the
object/{Pod,Service,Endpoint} structs.

Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
Miek Gieben 2019-06-01 08:39:52 +01:00 committed by GitHub
parent adc021d6ff
commit 3b3fb6f583
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 9 deletions

View file

@ -7,11 +7,11 @@ import (
// Pod is a stripped down api.Pod with only the items we need for CoreDNS.
type Pod struct {
// Don't add new fields to this struct without talking to the CoreDNS maintainers.
Version string
PodIP string
Name string
Namespace string
Deleting bool
*Empty
}
@ -29,9 +29,10 @@ func ToPod(obj interface{}) interface{} {
Namespace: pod.GetNamespace(),
Name: pod.GetName(),
}
// don't add pods that are being deleted.
t := pod.ObjectMeta.DeletionTimestamp
if t != nil {
p.Deleting = !(*t).Time.IsZero()
if t != nil && !(*t).Time.IsZero() {
return nil
}
*pod = api.Pod{}
@ -48,7 +49,6 @@ func (p *Pod) DeepCopyObject() runtime.Object {
PodIP: p.PodIP,
Namespace: p.Namespace,
Name: p.Name,
Deleting: p.Deleting,
}
return p1
}