mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	Reverse in k8s (#923)
* mw/kubernetes: reverse zone in ZONE stanza not parsed Properly parse the reverse zone syntax in the ZONES stanza as promised in the README. As short test case to test. * add test
This commit is contained in:
		| @@ -76,7 +76,9 @@ func kubernetesParse(c *caddy.Controller) (*Kubernetes, error) { | ||||
|  | ||||
| 		if len(zones) != 0 { | ||||
| 			k8s.Zones = zones | ||||
| 			middleware.Zones(k8s.Zones).Normalize() | ||||
| 			for i := 0; i < len(k8s.Zones); i++ { | ||||
| 				k8s.Zones[i] = middleware.Host(k8s.Zones[i]).Normalize() | ||||
| 			} | ||||
| 		} else { | ||||
| 			k8s.Zones = make([]string, len(c.ServerBlockKeys)) | ||||
| 			for i := 0; i < len(c.ServerBlockKeys); i++ { | ||||
|   | ||||
							
								
								
									
										35
									
								
								middleware/kubernetes/setup_reverse_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								middleware/kubernetes/setup_reverse_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| package kubernetes | ||||
|  | ||||
| import ( | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/mholt/caddy" | ||||
| ) | ||||
|  | ||||
| func TestKubernetesParseReverseZone(t *testing.T) { | ||||
| 	tests := []struct { | ||||
| 		input         string   // Corefile data as string | ||||
| 		expectedZones []string // expected count of defined zones. | ||||
| 	}{ | ||||
| 		{`kubernetes coredns.local 10.0.0.0/16`, []string{"coredns.local.", "0.10.in-addr.arpa."}}, | ||||
| 		{`kubernetes coredns.local 10.0.0.0/17`, []string{"coredns.local.", "10.0.0.0/17."}}, | ||||
| 	} | ||||
|  | ||||
| 	for i, tc := range tests { | ||||
| 		c := caddy.NewTestController("dns", tc.input) | ||||
| 		k, err := kubernetesParse(c) | ||||
| 		if err != nil { | ||||
| 			t.Fatalf("Test %d: Expected no error, got %q", err) | ||||
| 		} | ||||
|  | ||||
| 		zl := len(k.Zones) | ||||
| 		if zl != len(tc.expectedZones) { | ||||
| 			t.Errorf("Test %d: Expected kubernetes controller to be initialized with %d zones, found %d zones: '%v'", i, len(tc.expectedZones), zl) | ||||
| 		} | ||||
| 		for i, z := range tc.expectedZones { | ||||
| 			if k.Zones[i] != z { | ||||
| 				t.Errorf("Test %d: Expected zones to be %q, got %q", i, z, k.Zones[i]) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user