| 
									
										
										
										
											2017-08-09 03:13:38 -07:00
										 |  |  | # autopath
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-15 22:27:55 +01:00
										 |  |  | *autopath* allows CoreDNS to perform server side search path completion. | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							|  |  |  | follow the chain of search path elements and returns 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 | 
					
						
							|  |  |  | 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-09-14 09:36:06 +01:00
										 |  |  | Currently the following set of plugin has implemented *autopath*: | 
					
						
							| 
									
										
										
										
											2017-08-09 03:13:38 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | * *kubernetes* | 
					
						
							| 
									
										
										
										
											2017-08-18 12:57:23 +01:00
										 |  |  | * *erratic* | 
					
						
							| 
									
										
										
										
											2017-08-09 03:13:38 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 19:39:24 +02:00
										 |  |  | ## Metrics
 | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  | If monitoring is enabled (via the *prometheus* directive) then the following metric is exported: | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  | * `coredns_autopath_success_count_total{}` - counter of successfully autopath-ed queries. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | Use the search path dynamically retrieved from the kubernetes plugin. | 
					
						
							| 
									
										
										
										
											2017-08-21 08:57:54 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Bugs
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 19:39:24 +02:00
										 |  |  | Replies from this plugin are not cached, as the *cache* plugin is configured after this one (see | 
					
						
							|  |  |  | plugin.cfg). |