diff options
author | 2019-06-01 08:39:52 +0100 | |
---|---|---|
committer | 2019-06-01 08:39:52 +0100 | |
commit | 3b3fb6f5835a673f96c458b14104165dec2fb9f2 (patch) | |
tree | 009c13d23ace5964dd512864a731f8a28afc7f42 /plugin/kubernetes/object/pod.go | |
parent | adc021d6ff5d286072609a09ed88ce7ee7026934 (diff) | |
download | coredns-3b3fb6f5835a673f96c458b14104165dec2fb9f2.tar.gz coredns-3b3fb6f5835a673f96c458b14104165dec2fb9f2.tar.zst coredns-3b3fb6f5835a673f96c458b14104165dec2fb9f2.zip |
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>
Diffstat (limited to 'plugin/kubernetes/object/pod.go')
-rw-r--r-- | plugin/kubernetes/object/pod.go | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/plugin/kubernetes/object/pod.go b/plugin/kubernetes/object/pod.go index 9f0ba48ad..072d8d56d 100644 --- a/plugin/kubernetes/object/pod.go +++ b/plugin/kubernetes/object/pod.go @@ -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 } |