aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miciah Dashiel Butler Masters <miciah.masters@gmail.com> 2022-10-20 16:30:12 -0400
committerGravatar GitHub <noreply@github.com> 2022-10-20 16:30:12 -0400
commit6cb5e107077e2081ba13f1755ee9da34e7f6fc96 (patch)
tree421df3c779deba27220a636fcdf6927506ad6fb3
parent4e449b666a04c468e9db52726241499c46a71745 (diff)
downloadcoredns-6cb5e107077e2081ba13f1755ee9da34e7f6fc96.tar.gz
coredns-6cb5e107077e2081ba13f1755ee9da34e7f6fc96.tar.zst
coredns-6cb5e107077e2081ba13f1755ee9da34e7f6fc96.zip
plugin/k8s_external: Fix rcode for headless services (#5657)
Signed-off-by: Miciah Masters <miciah.masters@gmail.com> Signed-off-by: Miciah Masters <miciah.masters@gmail.com>
-rw-r--r--plugin/kubernetes/external.go1
-rw-r--r--plugin/kubernetes/external_test.go11
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
}
}
}