2016-08-19 17:14:17 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								package  kubernetes  
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"strings" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"testing" 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 14:51:32 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"github.com/coredns/coredns/plugin/pkg/fall" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-07-03 09:04:47 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"github.com/caddyserver/caddy" 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-29 15:58:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									meta  "k8s.io/apimachinery/pkg/apis/meta/v1" 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  TestKubernetesParse ( t  * testing . T )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									tests  :=  [ ] struct  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-04 01:09:12 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										input                           string  // Corefile data as string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										shouldErr                       bool    // true if test case is expected to produce an error. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedErrContent              string  // substring from the expected error. Empty for positive cases. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedZoneCount               int     // expected count of defined zones. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedNSCount                 int     // expected count of namespaces. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedLabelSelector           string  // expected label selector value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedNamespaceLabelSelector  string  // expected namespace label selector value 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										expectedPodMode                 string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedFallthrough             fall . F 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// positive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											` kubernetes coredns.local ` , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											` kubernetes coredns.local test.local ` , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											2 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-28 16:40:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									endpoint  http : //localhost:9090 http://localhost:9091 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									namespaces  demo 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									namespaces  demo  test 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											2 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    labels  environment = prod 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"environment=prod" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    labels  environment  in  ( production ,  staging ,  qa ) , application = nginx 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"application=nginx,environment in (production,qa,staging)" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    namespace_labels  istio - injection = enabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"istio-injection=enabled" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    namespaces  foo  bar 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    namespace_labels  istio - injection = enabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Error during parsing: namespaces and namespace_labels cannot both be set" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"istio-injection=enabled" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  test . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									endpoint  http : //localhost:8080 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									namespaces  demo  test 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    labels  environment  in  ( production ,  staging ,  qa ) , application = nginx 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-19 16:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    fallthrough 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											2 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"application=nginx,environment in (production,qa,staging)" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Root , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// negative 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    endpoint 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-14 09:37:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"rong argument count or unexpected line ending" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									namespaces 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-14 09:37:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"rong argument count or unexpected line ending" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    labels 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-14 09:37:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"rong argument count or unexpected line ending" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    labels  environment  in  ( production ,  qa 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-14 09:37:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"unable to parse label selector" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// pods disabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pods  disabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// pods insecure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pods  insecure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeInsecure , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// pods verified 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pods  verified 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeVerified , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// pods invalid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pods  giant_seed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-14 09:37:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"rong value for pods" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeVerified , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-09 22:29:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-19 16:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-06 14:52:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// fallthrough with zones 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-19 16:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-06 14:52:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									fallthrough  ip6 . arpa  inaddr . arpa  foo . com 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-19 16:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
									
										
										
										
											2018-01-06 14:52:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-14 09:37:10 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"rong argument count" , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-06 14:52:09 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-19 16:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 14:51:32 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											fall . F { Zones :  [ ] string { "ip6.arpa." ,  "inaddr.arpa." ,  "foo.com." } } , 
							 
						 
					
						
							
								
									
										
										
										
											2017-05-30 08:20:39 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-07 11:31:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// More than one Kubernetes not allowed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								kubernetes  cluster . local ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-28 18:16:05 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"this plugin" , 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-07 11:31:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-07 11:31:08 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-28 12:18:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									kubeconfig 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Wrong argument count or unexpected line ending after" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-28 12:18:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									kubeconfig  file  context  extraarg 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Wrong argument count or unexpected line ending after" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-28 12:18:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									kubeconfig  file  context 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-22 08:32:40 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-28 12:18:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											podModeDisabled , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											fall . Zero , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  i ,  test  :=  range  tests  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-19 17:14:17 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										c  :=  caddy . NewTestController ( "dns" ,  test . input ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-12 14:27:16 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										k8sController ,  err  :=  kubernetesParse ( c ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  test . shouldErr  &&  err  ==  nil  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected error, but did not find error for input '%s'. Error was: '%v'" ,  i ,  test . input ,  err ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										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 ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												continue 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  test . shouldErr  &&  ( len ( test . expectedErrContent )  <  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												t . Fatalf ( "Test %d: Test marked as expecting an error, but no expectedErrContent provided for input '%s'. Error was: '%v'" ,  i ,  test . input ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  test . shouldErr  &&  ( test . expectedZoneCount  >=  0 )  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												t . Errorf ( "Test %d: Test marked as expecting an error, but provides value for expectedZoneCount!=-1 for input '%s'. Error was: '%v'" ,  i ,  test . input ,  err ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ! strings . Contains ( err . Error ( ) ,  test . expectedErrContent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												t . Errorf ( "Test %d: Expected error to contain: %v, found error: %v, input: %s" ,  i ,  test . expectedErrContent ,  err ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											continue 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// No error was raised, so validate initialization of k8sController 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										//     Zones 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foundZoneCount  :=  len ( k8sController . Zones ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  foundZoneCount  !=  test . expectedZoneCount  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with %d zones, instead found %d zones: '%v' for input '%s'" ,  i ,  test . expectedZoneCount ,  foundZoneCount ,  k8sController . Zones ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										//    Namespaces 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foundNSCount  :=  len ( k8sController . Namespaces ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  foundNSCount  !=  test . expectedNSCount  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with %d namespaces. Instead found %d namespaces: '%v' for input '%s'" ,  i ,  test . expectedNSCount ,  foundNSCount ,  k8sController . Namespaces ,  test . input ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										//    Labels 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-12 14:27:16 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  k8sController . opts . labelSelector  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foundLabelSelectorString  :=  meta . FormatLabelSelector ( k8sController . opts . labelSelector ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  foundLabelSelectorString  !=  test . expectedLabelSelector  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with label selector '%s'. Instead found selector '%s' for input '%s'" ,  i ,  test . expectedLabelSelector ,  foundLabelSelectorString ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										//    Pods 
							 
						 
					
						
							
								
									
										
										
										
											2017-08-22 22:11:48 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										foundPodMode  :=  k8sController . podMode 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  foundPodMode  !=  test . expectedPodMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with pod mode '%s'. Instead found pod mode '%s' for input '%s'" ,  i ,  test . expectedPodMode ,  foundPodMode ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-04-19 16:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// fallthrough 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 14:51:32 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ! k8sController . Fall . Equal ( test . expectedFallthrough )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with fallthrough '%v'. Instead found fallthrough '%v' for input '%s'" ,  i ,  test . expectedFallthrough ,  k8sController . Fall ,  test . input ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-19 16:08:30 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2017-11-08 08:07:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-02-16 11:05:52 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func  TestKubernetesParseEndpointPodNames ( t  * testing . T )  {  
						 
					
						
							
								
									
										
										
										
											2017-11-08 08:07:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									tests  :=  [ ] struct  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										input                 string  // Corefile data as string 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-14 17:55:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										shouldErr             bool    // true if test case is expected to produce an error. 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-08 08:07:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										expectedErrContent    string  // substring from the expected error. Empty for positive cases. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedEndpointMode  bool 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// valid endpoints mode 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									endpoint_pod_names 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// endpoints invalid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									endpoint_pod_names  giant_seed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"rong argument count or unexpected" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// endpoint not set 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  i ,  test  :=  range  tests  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										c  :=  caddy . NewTestController ( "dns" ,  test . input ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-12 14:27:16 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										k8sController ,  err  :=  kubernetesParse ( c ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-08 08:07:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  test . shouldErr  &&  err  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected error, but did not find error for input '%s'. Error was: '%v'" ,  i ,  test . input ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										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 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ! strings . Contains ( err . Error ( ) ,  test . expectedErrContent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												t . Errorf ( "Test %d: Expected error to contain: %v, found error: %v, input: %s" ,  i ,  test . expectedErrContent ,  err ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// Endpoints 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foundEndpointNameMode  :=  k8sController . endpointNameMode 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  foundEndpointNameMode  !=  test . expectedEndpointMode  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with endpoints mode '%v'. Instead found endpoints mode '%v' for input '%s'" ,  i ,  test . expectedEndpointMode ,  foundEndpointNameMode ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2018-02-16 11:05:52 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  TestKubernetesParseNoEndpoints ( t  * testing . T )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									tests  :=  [ ] struct  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										input                  string  // Corefile data as string 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-14 17:55:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										shouldErr              bool    // true if test case is expected to produce an error. 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-16 11:05:52 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										expectedErrContent     string  // substring from the expected error. Empty for positive cases. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedEndpointsInit  bool 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// valid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									noendpoints 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// invalid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									noendpoints  ixnay  on  the  endpointsay 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"rong argument count or unexpected" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// not set 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  i ,  test  :=  range  tests  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										c  :=  caddy . NewTestController ( "dns" ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										k8sController ,  err  :=  kubernetesParse ( c ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  test . shouldErr  &&  err  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected error, but did not find error for input '%s'. Error was: '%v'" ,  i ,  test . input ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										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 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ! strings . Contains ( err . Error ( ) ,  test . expectedErrContent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												t . Errorf ( "Test %d: Expected error to contain: %v, found error: %v, input: %s" ,  i ,  test . expectedErrContent ,  err ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foundEndpointsInit  :=  k8sController . opts . initEndpointsCache 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  foundEndpointsInit  !=  test . expectedEndpointsInit  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with endpoints watch '%v'. Instead found endpoints watch '%v' for input '%s'" ,  i ,  test . expectedEndpointsInit ,  foundEndpointsInit ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2018-05-23 14:57:59 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  TestKubernetesParseIgnoreEmptyService ( t  * testing . T )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									tests  :=  [ ] struct  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										input                  string  // Corefile data as string 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-14 17:55:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										shouldErr              bool    // true if test case is expected to produce an error. 
							 
						 
					
						
							
								
									
										
										
										
											2018-05-23 14:57:59 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										expectedErrContent     string  // substring from the expected error. Empty for positive cases. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedEndpointsInit  bool 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// valid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ignore  empty_service 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// invalid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ignore  ixnay  on  the  endpointsay 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"unable to parse ignore value" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ignore  empty_service  ixnay  on  the  endpointsay 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// not set 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									for  i ,  test  :=  range  tests  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										c  :=  caddy . NewTestController ( "dns" ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										k8sController ,  err  :=  kubernetesParse ( c ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  test . shouldErr  &&  err  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected error, but did not find error for input '%s'. Error was: '%v'" ,  i ,  test . input ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										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 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ! strings . Contains ( err . Error ( ) ,  test . expectedErrContent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												t . Errorf ( "Test %d: Expected error to contain: %v, found error: %v, input: %s" ,  i ,  test . expectedErrContent ,  err ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foundIgnoreEmptyService  :=  k8sController . opts . ignoreEmptyService 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  foundIgnoreEmptyService  !=  test . expectedEndpointsInit  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with ignore empty_service '%v'. Instead found ignore empty_service watch '%v' for input '%s'" ,  i ,  test . expectedEndpointsInit ,  foundIgnoreEmptyService ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}