About Consul SD tag setting

Same with Slack chat.

When use consul as SD, and includeTag was set true dtab like /svc => /#/io.l5d.consul/dc1/prod, so if access a service A in prod status, do i need take a tag prod like A.prod.service.consul? Or don’t need take a tag, just access like A.service.consul and linkerd automatically reads tag from consul that service with prod status?

If you have includeTag set to true then names like /#/io.l5d.consul/dc1/prod/A will resolve to the prod service with the A tag. This is the same set of endpoints that A.prod.service.consul would resolve to with consul dns.

Sorry Alex, there was a mistake in my comments, it should be A.prod.service.consul ==> prod.A.service.consul, prod is tag. So, follow your reply, names must like /#/io.l5d.consul/dc1/prod/A then resolve to prod.A.service.consul. How do i input tag prod into a request for service A?

It depends on your dtab. For example if you used a dtab like

/tag => /#/io.l5d.consul/dc1;
/svc => /$/io.buoyant.http.domainToPathPfx/tag;

Then you could specify A.prod as the hostname which would be given the linkerd service name /svc/A.prod which the dtab would transform into /#/io.l5d.consul/dc1/prod/A.

Alex, thank you very much.