2016-08-19 17:14:17 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								package  kubernetes  
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  (  
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"net" 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									"strings" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"testing" 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"time" 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-19 17:14:17 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"github.com/mholt/caddy" 
							 
						 
					
						
							
								
									
										
										
										
											2016-11-05 07:57:08 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									unversionedapi  "k8s.io/client-go/1.5/pkg/api/unversioned" 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func  parseCidr ( cidr  string )  net . IPNet  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									_ ,  ipnet ,  _  :=  net . ParseCIDR ( cidr ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  * ipnet 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func  TestKubernetesParse ( t  * testing . T )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									tests  :=  [ ] struct  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										description            string         // Human-facing description of test case 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										input                  string         // Corefile data as string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										shouldErr              bool           // true if test case is exected 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. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedResyncPeriod   time . Duration  // expected resync period value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedLabelSelector  string         // expected label selector value 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										expectedPodMode        string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										expectedCidrs          [ ] net . IPNet 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// positive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"kubernetes keyword with one zone" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` 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-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"kubernetes keyword with multiple zones" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` 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-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"kubernetes keyword with zone and empty braces" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` 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-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"endpoint keyword with url" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									endpoint  http : //localhost:9090 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"namespaces keyword with one namespace" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									namespaces  demo 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"namespaces keyword with multiple namespaces" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									namespaces  demo  test 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											2 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"resync period in seconds" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    resyncperiod  30 s 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											30  *  time . Second , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"resync period in minutes" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    resyncperiod  15 m 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											15  *  time . Minute , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"basic label selector" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    labels  environment = prod 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"environment=prod" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"multi-label selector" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    labels  environment  in  ( production ,  staging ,  qa ) , application = nginx 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"application=nginx,environment in (production,qa,staging)" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"fully specified valid config" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  test . local  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    resyncperiod  15 m 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									endpoint  http : //localhost:8080 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									namespaces  demo  test 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    labels  environment  in  ( production ,  staging ,  qa ) , application = nginx 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											2 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											15  *  time . Minute , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"application=nginx,environment in (production,qa,staging)" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										// negative 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"no kubernetes keyword" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Kubernetes setup called without keyword 'kubernetes' in Corefile" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"kubernetes keyword without a zone" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes ` , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Zone name must be provided for kubernetes middleware" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"endpoint keyword without an endpoint value" , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    endpoint 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Wrong argument count or unexpected line ending after 'endpoint'" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-05 18:19:51 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"namespace keyword without a namespace value" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									namespaces 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Parse error: Wrong argument count or unexpected line ending after 'namespaces'" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"resyncperiod keyword without a duration value" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    resyncperiod 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Wrong argument count or unexpected line ending after 'resyncperiod'" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0  *  time . Minute , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"resync period no units" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    resyncperiod  15 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Unable to parse resync duration value. Value provided was " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0  *  time . Second , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-08 14:30:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"resync period invalid" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    resyncperiod  abc 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Unable to parse resync duration value. Value provided was " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0  *  time . Second , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"labels with no selector value" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    labels 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Wrong argument count or unexpected line ending after 'labels'" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0  *  time . Second , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"labels with invalid selector value" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    labels  environment  in  ( production ,  qa 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Unable to parse label selector. Value provided was" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0  *  time . Second , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
									
										
										
										
											2017-02-02 16:51:42 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// pods disabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"pods disabled" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pods  disabled 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											PodModeDisabled , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// pods insecure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"pods insecure" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pods  insecure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											PodModeInsecure , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// pods verified 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"pods verified" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pods  verified 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											PodModeVerified , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// pods invalid 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"invalid pods mode" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									pods  giant_seed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Value for pods must be one of: disabled, verified, insecure" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											PodModeVerified , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// cidrs ok 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"valid cidrs" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cidrs  10.0 .0 .0 / 24  10.0 .1 .0 / 24 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											[ ] net . IPNet { parseCidr ( "10.0.0.0/24" ) ,  parseCidr ( "10.0.1.0/24" ) } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// cidrs ok 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Invalid cidr: hard" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											` kubernetes  coredns . local  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cidrs  hard  dry 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ` ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"Invalid cidr: hard" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											- 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultResyncPeriod , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											"" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											defaultPodMode , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											nil , 
							 
						 
					
						
							
								
									
										
										
										
											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 ) 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										k8sController ,  err  :=  kubernetesParse ( c ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										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 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										//    ResyncPeriod 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foundResyncPeriod  :=  k8sController . ResyncPeriod 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  foundResyncPeriod  !=  test . expectedResyncPeriod  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-12 20:44:08 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with resync period '%s'. Instead found period '%s' for input '%s'" ,  i ,  test . expectedResyncPeriod ,  foundResyncPeriod ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										//    Labels 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  k8sController . LabelSelector  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											foundLabelSelectorString  :=  unversionedapi . FormatLabelSelector ( k8sController . LabelSelector ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foundPodMode  :=  k8sController . PodMode 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										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 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										//    Cidrs 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foundCidrs  :=  k8sController . ReverseCidrs 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  len ( foundCidrs )  !=  len ( test . expectedCidrs )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with %d cidrs. Instead found %d cidrs for input '%s'" ,  i ,  len ( test . expectedCidrs ) ,  len ( foundCidrs ) ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  j ,  cidr  :=  range  test . expectedCidrs  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  cidr . String ( )  !=  foundCidrs [ j ] . String ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												t . Errorf ( "Test %d: Expected kubernetes controller to be initialized with cidr '%s'. Instead found cidr '%s' for input '%s'" ,  i ,  test . expectedCidrs [ j ] . String ( ) ,  foundCidrs [ j ] . String ( ) ,  test . input ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-22 16:07:27 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}