aboutsummaryrefslogtreecommitdiff
path: root/plugin/k8s_external/setup_test.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2018-12-14 09:41:51 +0000
committerGravatar GitHub <noreply@github.com> 2018-12-14 09:41:51 +0000
commitc1c98924c3733b853115c62adc1a2b5978ae2df3 (patch)
tree6006978128c2ffd02eb9c5eaaeb16993f38f205b /plugin/k8s_external/setup_test.go
parentd9880681c3b28f8506e2a5b15bbc404b2a155b00 (diff)
downloadcoredns-c1c98924c3733b853115c62adc1a2b5978ae2df3.tar.gz
coredns-c1c98924c3733b853115c62adc1a2b5978ae2df3.tar.zst
coredns-c1c98924c3733b853115c62adc1a2b5978ae2df3.zip
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>
Diffstat (limited to 'plugin/k8s_external/setup_test.go')
-rw-r--r--plugin/k8s_external/setup_test.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/plugin/k8s_external/setup_test.go b/plugin/k8s_external/setup_test.go
new file mode 100644
index 000000000..4533e13ec
--- /dev/null
+++ b/plugin/k8s_external/setup_test.go
@@ -0,0 +1,48 @@
+package external
+
+import (
+ "testing"
+
+ "github.com/mholt/caddy"
+)
+
+func TestSetup(t *testing.T) {
+ tests := []struct {
+ input string
+ shouldErr bool
+ expectedZone string
+ expectedApex string
+ }{
+ {`k8s_external`, false, "", "dns"},
+ {`k8s_external example.org`, false, "example.org.", "dns"},
+ {`k8s_external example.org {
+ apex testdns
+}`, false, "example.org.", "testdns"},
+ }
+
+ for i, test := range tests {
+ c := caddy.NewTestController("dns", test.input)
+ e, err := parse(c)
+
+ if test.shouldErr && err == nil {
+ t.Errorf("Test %d: Expected error but found %s for input %s", i, err, test.input)
+ }
+
+ if err != nil {
+ if !test.shouldErr {
+ t.Errorf("Test %d: Expected no error but found one for input %s. Error was: %v", i, test.input, err)
+ }
+ }
+
+ if !test.shouldErr && test.expectedZone != "" {
+ if test.expectedZone != e.Zones[0] {
+ t.Errorf("Test %d, expected zone %q for input %s, got: %q", i, test.expectedZone, test.input, e.Zones[0])
+ }
+ }
+ if !test.shouldErr {
+ if test.expectedApex != e.apex {
+ t.Errorf("Test %d, expected apex %q for input %s, got: %q", i, test.expectedApex, test.input, e.apex)
+ }
+ }
+ }
+}