hashicorp / hashicorp/consul

allow multiple service tags to be used together

Open
#13,674 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
1d 18h
Merged PRs (30d)
39

Description

In https://github.com/hashicorp/nomad/issues/13604, @maxadamo wrote the following proposal, but I wasn't able to transfer the issue over here for some reason 😊

---

### Proposal

According to the following links:
https://docs.ldap.com/ldap-sdk/docs/javadoc/index.html?com/unboundid/ldap/sdk/DNSSRVRecordServerSet.html
https://ldap.com/dns-srv-records-for-ldap/

a DNS SRV record for LDAP should contain 2 tags at the same time `_ldap._tcp` (or `_ldaps._tcp`)

service tag in Nomad is a list and it tried to define:
`["ldap", "tcp"]`

but I get an unexpected result. The name can be resolved either as:
```
_host._tcp.example.com
_host._ldap.example.com
```
but it cannot be resolved as:
```
_host._ldap._tcp.example.com
```

Furthermore, the above documentation says that in order to get a list of DNS records for a domain, the tag should be prepended. For instance:
```
_ldap._tcp.example.com
```

### Use-cases

use proper LDAP SRV record (with escapes as follows):
```
ldap:///dc%3Dexample%2Cdc%3Dcom
```

### Attempted Solutions

could you make the multiple tags work together, and maybe even one at once?
For instance, we can resolve these all:

```
_host._tcp.example.com
_host._ldap.example.com
_host._ldap._tcp.example.com
```

p.s.: maybe the prepending "_" is enough and we don't need to prepend the tags. I don't have it clear yet.

Contributor guide

Open the contributing guide

Research direction

Start by tracing Consul's DNS SRV resolution entry point and how the service tag list is converted into lookup names. Define the expected behavior for combined tags and single tags, including the LDAP examples, then verify that all listed names resolve as intended.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.