diff options
Diffstat (limited to 'plugin/kubernetes/metadata.go')
-rw-r--r-- | plugin/kubernetes/metadata.go | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/plugin/kubernetes/metadata.go b/plugin/kubernetes/metadata.go index 09d0b3ae5..36e2f9a0f 100644 --- a/plugin/kubernetes/metadata.go +++ b/plugin/kubernetes/metadata.go @@ -10,7 +10,21 @@ import ( // Metadata implements the metadata.Provider interface. func (k *Kubernetes) Metadata(ctx context.Context, state request.Request) context.Context { + pod := k.podWithIP(state.IP()) + if pod != nil { + metadata.SetValueFunc(ctx, "kubernetes/client-namespace", func() string { + return pod.Namespace + }) + + metadata.SetValueFunc(ctx, "kubernetes/client-pod-name", func() string { + return pod.Name + }) + } + zone := plugin.Zones(k.Zones).Matches(state.Name()) + if zone == "" { + return ctx + } // possible optimization: cache r so it doesn't need to be calculated again in ServeDNS r, err := parseRequest(state.Name(), zone) if err != nil { @@ -44,18 +58,5 @@ func (k *Kubernetes) Metadata(ctx context.Context, state request.Request) contex return r.podOrSvc }) - pod := k.podWithIP(state.IP()) - if pod == nil { - return ctx - } - - metadata.SetValueFunc(ctx, "kubernetes/client-namespace", func() string { - return pod.Namespace - }) - - metadata.SetValueFunc(ctx, "kubernetes/client-pod-name", func() string { - return pod.Name - }) - return ctx } |