2017-08-09 03:13:38 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# autopath
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-04 12:53:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Name
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 23:32:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*autopath* - allows for server-side search path completion.
							 
						 
					
						
							
								
									
										
										
										
											2018-01-04 12:53:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Description
  
						 
					
						
							
								
									
										
										
										
											2017-08-09 03:13:38 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-09-15 22:27:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								If it sees a query that matches the first element of the configured search path, * autopath *  will
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 23:32:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								follow the chain of search path elements and return the first reply that is not NXDOMAIN. On any
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								failures, the original reply is returned. Because * autopath *  returns a reply for a name that wasn't
							 
						 
					
						
							
								
									
										
										
										
											2017-09-15 22:27:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								the original question it will add a CNAME that points from the original name (with the search path
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								element in it) to the name of this answer.
							 
						 
					
						
							
								
									
										
										
										
											2017-08-09 03:13:38 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Syntax
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
									
										
										
										
											2017-10-10 09:39:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								autopath [ZONE...] RESOLV-CONF
							 
						 
					
						
							
								
									
										
										
										
											2017-08-09 03:13:38 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  **ZONES** zones * autopath *  should be authoritative for. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  **RESOLV-CONF** points to a `resolv.conf`  like file or uses a special syntax to point to another 
						 
					
						
							
								
									
										
										
										
											2017-09-14 09:36:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  plugin. For instance `@kubernetes` , will call out to the kubernetes plugin (for each
							 
						 
					
						
							
								
									
										
										
										
											2017-08-09 03:13:38 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  query) to retrieve the search list it should use.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 15:40:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								If a plugin implements the `AutoPather`  interface then it can be used.
							 
						 
					
						
							
								
									
										
										
										
											2017-08-09 03:13:38 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:39:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Metrics
  
						 
					
						
							
								
									
										
										
										
											2017-12-12 15:40:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:39:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								If monitoring is enabled (via the * prometheus *  directive) then the following metric is exported:
							 
						 
					
						
							
								
									
										
										
										
											2017-12-12 15:40:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-04-25 16:43:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  `coredns_autopath_success_count_total{server}`  - counter of successfully autopath-ed queries. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The `server`  label is explained in the * metrics *  plugin documentation.
							 
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:39:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-08-09 03:13:38 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								## Examples
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								autopath my-resolv.conf
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Use `my-resolv.conf`  as the file to get the search path from. This file only needs so have one line:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`search domain1 domain2 ...`  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								autopath @kubernetes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-10 23:32:06 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Use the search path dynamically retrieved from the * kubernetes *  plugin.
							 
						 
					
						
							
								
									
										
										
										
											2018-10-18 17:42:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Known Issues
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-01 10:38:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								In Kubernetes, * autopath *  is not compatible with pods running from Windows nodes.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If the server side search ultimately results in a negative answer (e.g. `NXDOMAIN` ), then the client will fruitlessly search all paths manually, thus negating the * autopath *  optimization.