osbase/net/dns/kubernetes: add Kubernetes DNS handler
This adds a DNS server handler for Kubernetes DNS service discovery. It
is partially based on the CoreDNS Kubernetes plugin. The query handler
however is written completely from scratch. The handler in the CoreDNS
plugin is very weird; it first handles each query type separately, and
generates msg.Service objects which then need to be converted to dns
records. The new implementation is much simpler, and also more correct:
It handles ANY queries, and follows the rules for NXDOMAIN (If a name is
NXDOMAIN for one qtype, it is NXDOMAIN for all qtypes, and subdomains of
the name are also NXDOMAIN.)
Change-Id: Id1d498ca5384a3b047587ed73e95e4871d82d499
Reviewed-on: https://review.monogon.dev/c/monogon/+/3259
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
Tested-by: Jenkins CI
diff --git a/go.mod b/go.mod
index ad8cbcd..f27e36a 100644
--- a/go.mod
+++ b/go.mod
@@ -162,6 +162,7 @@
k8s.io/kubelet v0.30.2
k8s.io/kubernetes v1.20.1
k8s.io/pod-security-admission v0.0.0
+ k8s.io/utils v0.0.0-20230726121419-3b25d923346b
)
require (
@@ -500,7 +501,6 @@
k8s.io/legacy-cloud-providers v0.0.0 // indirect
k8s.io/metrics v0.30.2 // indirect
k8s.io/mount-utils v0.0.0 // indirect
- k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
nhooyr.io/websocket v1.8.6 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect