Add new plugin: external - resolve k8s ingress and LB address with external names (#2379)

* Add new plugin: external

This plugin works in conjunction with the kubernetes plugin and exports
ingress and LB addresses as DNS records. It bypasses backend.go and
backend_lookup.go flow because it is not needed.

README, tests are implemented. The tests only exercise the unit tests,
this has not been tested in any ci.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Rename to k8s_external

Signed-off-by: Miek Gieben <miek@miek.nl>

* go gen

Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
Miek Gieben 2018-12-14 09:41:51 +00:00 committed by GitHub
parent d9880681c3
commit c1c98924c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 1156 additions and 1 deletions

View file

@ -12,6 +12,10 @@ func isDefaultNS(name, zone string) bool {
return strings.Index(name, defaultNSName) == 0 && strings.Index(name, zone) == len(defaultNSName)
}
// nsAddr return the A record for the CoreDNS service in the cluster. If it fails that it fallsback
// on the local address of the machine we're running on.
//
// This function is rather expensive to run.
func (k *Kubernetes) nsAddr() *dns.A {
var (
svcName string