diff options
Diffstat (limited to 'middleware/kubernetes/setup_test.go')
-rw-r--r-- | middleware/kubernetes/setup_test.go | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/middleware/kubernetes/setup_test.go b/middleware/kubernetes/setup_test.go index 35cf5f891..d150daba9 100644 --- a/middleware/kubernetes/setup_test.go +++ b/middleware/kubernetes/setup_test.go @@ -29,6 +29,7 @@ func TestKubernetesParse(t *testing.T) { expectedCidrs []net.IPNet expectedFallthrough bool expectedUpstreams []string + expectedFederations []Federation }{ // positive { @@ -44,6 +45,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "kubernetes keyword with multiple zones", @@ -58,6 +60,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "kubernetes keyword with zone and empty braces", @@ -73,6 +76,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "endpoint keyword with url", @@ -89,6 +93,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "namespaces keyword with one namespace", @@ -105,6 +110,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + nil, }, { "namespaces keyword with multiple namespaces", @@ -121,6 +127,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "resync period in seconds", @@ -137,6 +144,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "resync period in minutes", @@ -153,6 +161,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "basic label selector", @@ -169,6 +178,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "multi-label selector", @@ -185,6 +195,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "fully specified valid config", @@ -205,6 +216,7 @@ func TestKubernetesParse(t *testing.T) { nil, true, nil, + []Federation{}, }, // negative { @@ -220,6 +232,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "kubernetes keyword without a zone", @@ -234,6 +247,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "endpoint keyword without an endpoint value", @@ -250,6 +264,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "namespace keyword without a namespace value", @@ -266,6 +281,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "resyncperiod keyword without a duration value", @@ -282,6 +298,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "resync period no units", @@ -298,6 +315,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "resync period invalid", @@ -314,6 +332,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "labels with no selector value", @@ -330,6 +349,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, { "labels with invalid selector value", @@ -346,6 +366,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, // pods disabled { @@ -363,6 +384,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, // pods insecure { @@ -380,6 +402,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, // pods verified { @@ -397,6 +420,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, // pods invalid { @@ -414,6 +438,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, // cidrs ok { @@ -431,6 +456,7 @@ func TestKubernetesParse(t *testing.T) { []net.IPNet{parseCidr("10.0.0.0/24"), parseCidr("10.0.1.0/24")}, false, nil, + []Federation{}, }, // cidrs ok { @@ -448,6 +474,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, // fallthrough invalid { @@ -465,6 +492,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, }, // Valid upstream { @@ -482,6 +510,7 @@ func TestKubernetesParse(t *testing.T) { nil, false, []string{"13.14.15.16:53"}, + []Federation{}, }, // Invalid upstream { @@ -499,6 +528,47 @@ func TestKubernetesParse(t *testing.T) { nil, false, nil, + []Federation{}, + }, + // Valid federations + { + "valid upstream", + `kubernetes coredns.local { + federation foo bar.crawl.com + federation fed era.tion.com +}`, + false, + "", + 1, + 0, + defaultResyncPeriod, + "", + defaultPodMode, + nil, + false, + nil, + []Federation{ + {name: "foo", zone: "bar.crawl.com"}, + {name: "fed", zone: "era.tion.com"}, + }, + }, + // Invalid federations + { + "valid upstream", + `kubernetes coredns.local { + federation starship +}`, + true, + `Incorrect number of arguments for federation. Got 1, expect 2.`, + -1, + 0, + defaultResyncPeriod, + "", + defaultPodMode, + nil, + false, + nil, + []Federation{}, }, } |