From 6cb5e107077e2081ba13f1755ee9da34e7f6fc96 Mon Sep 17 00:00:00 2001 From: Miciah Dashiel Butler Masters Date: Thu, 20 Oct 2022 16:30:12 -0400 Subject: [PATCH] plugin/k8s_external: Fix rcode for headless services (#5657) Signed-off-by: Miciah Masters Signed-off-by: Miciah Masters --- plugin/kubernetes/external.go | 1 + plugin/kubernetes/external_test.go | 11 +++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugin/kubernetes/external.go b/plugin/kubernetes/external.go index b6531ab68..077654332 100644 --- a/plugin/kubernetes/external.go +++ b/plugin/kubernetes/external.go @@ -116,6 +116,7 @@ func (k *Kubernetes) External(state request.Request, headless bool) ([]msg.Servi if !(matchPortAndProtocol(port, p.Name, protocol, p.Protocol)) { continue } + rcode = dns.RcodeSuccess s := msg.Service{Host: addr.IP, Port: int(p.Port), TTL: k.ttl} s.Key = strings.Join([]string{zonePath, svc.Namespace, svc.Name, endpointHostname(addr, k.endpointNameMode)}, "/") diff --git a/plugin/kubernetes/external_test.go b/plugin/kubernetes/external_test.go index 670d2b9b2..474b7be44 100644 --- a/plugin/kubernetes/external_test.go +++ b/plugin/kubernetes/external_test.go @@ -28,7 +28,7 @@ var extCases = []struct { { Qname: "svc6.testns.example.org.", Rcode: dns.RcodeSuccess, Msg: []msg.Service{ - {Host: "1:2::5", Port: 80, TTL: 5, Key: "/c/org/example/testns/svc1"}, + {Host: "1:2::5", Port: 80, TTL: 5, Key: "/c/org/example/testns/svc6"}, }, }, { @@ -46,14 +46,14 @@ var extCases = []struct { { Qname: "svc-headless.testns.example.com.", Rcode: dns.RcodeSuccess, Msg: []msg.Service{ - {Host: "1.2.3.4", Port: 80, TTL: 5, Weight: 50, Key: "/c/org/example/testns/svc-headless"}, - {Host: "1.2.3.5", Port: 80, TTL: 5, Weight: 50, Key: "/c/org/example/testns/svc-headless"}, + {Host: "1.2.3.4", Port: 80, TTL: 5, Weight: 50, Key: "/c/org/example/testns/svc-headless/endpoint-svc-0"}, + {Host: "1.2.3.5", Port: 80, TTL: 5, Weight: 50, Key: "/c/org/example/testns/svc-headless/endpoint-svc-1"}, }, }, { - Qname: "endpoint-0.svc-headless.testns.example.com.", Rcode: dns.RcodeSuccess, + Qname: "endpoint-svc-0.svc-headless.testns.example.com.", Rcode: dns.RcodeSuccess, Msg: []msg.Service{ - {Host: "1.2.3.4", Port: 80, TTL: 5, Weight: 100, Key: "/c/org/example/testns/svc-headless/endpoint-0"}, + {Host: "1.2.3.4", Port: 80, TTL: 5, Weight: 100, Key: "/c/org/example/testns/svc-headless/endpoint-svc-0"}, }, }, { @@ -84,7 +84,6 @@ func TestExternal(t *testing.T) { if x := tc.Msg[j].Key; x != s.Key { t.Errorf("Test %d, expected key %s, got %s", i, x, s.Key) } - return } } }