-
Couldn't load subscription status.
- Fork 504
dnssrv: ensure that DNS names in SRV queries are absolute #1637
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dnssrv: ensure that DNS names in SRV queries are absolute #1637
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
⭐ Without really knowing much about SRV records, this seems reasonable to me
|
I can think of two improvements:
routers:
- protocol: http
dtab: |
/dnssrv => /#/io.l5d.dnssrv;
/svc => /dnssrv;
/svc/myservice =>
/dnssrv/myservice | // relative to search domain
/dnssrv/myservice.srv.dc-2.example.org.; // absolute records also work
namers:
- kind: io.l5d.dnssrv
experimental: true
domain: srv.dc-1.example.org.
|
the target of SRV queries must be an absolute DNS name (ending with a `.`). If the dtab specifies a relative name, treat it as absolute.
|
I've thought about this some more; I quite like option (1) from my comment above. I'll push it as a separate commit in this PR, let me know what you think (or if I should submit it as a separate PR). |
this allows for considerably more concise dtabs. If, for example, an
organization hosts SRV addresses under `srv.<datacenter>.example.org`,
users can configure the namer like this:
```yaml
namers:
- kind: io.l5d.dnssrv
experimental: true
domain: srv.dc-1.example.org
```
and then use a dtab:
```
/dnssrv => /#/io.l5d.dnssrv
/svc => /dnssrv
/svc/myservice =>
/dnssrv/myservice |
/dnssrv/myservice.srv.dc-2.example.org.;
```
which will expand `myservice` into all hosts under
`myservice.srv.dc-1.example.org.`, and fall back to
`myservice.srv.dc-2.example.org.`.
`/svc/other` expands to `other.srv.dc-1.example.org`.
d946eef to
9c89fe6
Compare
the metrics are already namespaced by the plugin prefix, so the addidional "dnssrv" scope is redundant.
|
I'm going to go ahead and merge this, but option 1 above sounds good to me. |
## 1.3.0 2017-10-06 * **Breaking Change**: All HTTP engines are now Netty 4; `engine:` configuration key is no longer valid. * Upgraded to Finagle 7.1 * Kubernetes * Added a workaround for an issue where Kubernetes namers fail to update because watches are not correctly restarted due to a regression in some versions of Kubernetes (#1636). * Fixed `io.l5d.k8s.configMap` interpreter failing to update after receiving an invalid dtab (#1639). * Performance improvements for Kubernetes namers. * Prometheus * Added an optional `prefix:` configuration key to add a prefix to all metrics reported by Linkerd (#1655). * DNS SRV Record namer * Ensured that DNS names in SRV queries are absolute (#1637). * Added an optional `domain` config key for relative DNS lookups (#1637). * Removed redundant `dnssrv` metrics scope from SRV record namer metrics (#1637). * Consul * Consul namers no longer watch the entire list of services, improving performance significantly when there are large numbers of services (#1646). * Curator * Added support for `ServiceInstance` objects with custom payloads (#1272).
I find the tap and top icons a bit strange. Using the filter icon for tap is weird because we already use the filter icon for filtering columns. The caret-up icon looks weird to me for top because it looks like something that is click to expand. Change the tap icon to the Font Awesome microscope. Change the top icon to the Font Awesome stream. Signed-off-by: Alex Leong <[email protected]>
the target of SRV queries must be an absolute DNS name (ending
with a
.). If the dtab specifies a relative name, treat it asabsolute.