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 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-24 18:14:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 "github.com/coredns/caddy" 
  
						 
					
						
							
								
									
										
										
										
											2018-01-07 14:51:32 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 "github.com/coredns/coredns/plugin/pkg/fall" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											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 ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}