mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 17:53:21 -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 { | 		if len(zones) != 0 { | ||||||
| 			k8s.Zones = zones | 			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 { | 		} else { | ||||||
| 			k8s.Zones = make([]string, len(c.ServerBlockKeys)) | 			k8s.Zones = make([]string, len(c.ServerBlockKeys)) | ||||||
| 			for i := 0; i < len(c.ServerBlockKeys); i++ { | 			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