Admin /delegator.json not updating the tree dynamically after flipping traffic

As per our use case we very frequently switch traffic between 2 DC,
I’m trying to curl /admin/delgator.json to fetch me list of ips linkerd is routing the traffic to,
After we flip dtabs to other DC - curl output is still returning me the old list of ips.

When I restart Linkerd service, it gets me correct IPs.
Am I missing anything here, Any suggesations ?

curl -H “Content-Type: application/json” -X POST -d ‘{“namespace”:“abc”,“dtab”:"",“path”:"/svc"}’ http://localhost:7300/delegator.json

Hi @kunalpathak14!

Could you say more about your setup, environment, config, and linkerd version? IPs found in the delegator api are the same ones used by linkerd to route traffic, so old ips returned by the api mean that linkerd hasn’t observed the changes you’re making.

I can see the actual traffic is routed to correct IPs after we Flip consul to other DC.
but the delegator.json doest not return correct IPs . I use admin/delegator.json only for validation to check correct set of IPs are returned, as I understand it is only read only output. ??

Below is the my Linkerd Config, running this on VMs

port: 7300


  • kind: io.l5d.consul
    useHealthCheck: true
    failFast: true
    port: 8500


  • kind: io.l5d.influxdb


  • protocol: http
    kind: io.l5d.namerd.http
    experimental: true
    dst: /$/inet//4180
    namespace: api-abc

    label: abc

    • port: 9025
      commonName: localhost
      • abc.pem
  • protocol: http
    dtab: |
    /srv => /#/io.l5d.consul/ttce-stage/uncolored-xyz;
    /host => /srv;
    /svc => /host;

    label: xyz

    • port: 9027
      commonName: localhost
      • abc.pem

However when I run below on the my Namerd instance correct IPs is getting returned before and after the consul change for flipping(blue/green),

curl http://localhost:4180/api/1/bind/abc?path=/svc
$ curl http://localhost:4180/api/1/bind/abc?path=/svc
{“type”:“leaf”,“bound”:{“addr”:{“type”:“bound”,“addrs”:[{“ip”:“Correct Blue Ips”,“port”:8005,“meta”:{}},{“ip”:“Correct Blue Ips”,“port”:8005,“meta”:{}}],“meta”:{}},“id”:"/#/io.l5d.consul/ttc-stage/blue-abc",“path”:"/"}}

After Flipping the traffic to other DC

(1:35)$ curl http://localhost:4180/api/1/bind/abc?path=/svc
{“type”:“leaf”,“bound”:{“addr”:{“type”:“bound”,“addrs”:[{“ip”:"< Correct Green Point IPs>",“port”:8005,“meta”:{}},{“ip”:"< Correct Green Point IPs >",“port”:8005,“meta”:{}}],“meta”:{}},“id”:"/#/io.l5d.consul/ttce-stage/green-abc",“path”:"/"}}

Linkerd version I am currently on is 1.2

Yep you are correct delegator.json output is read only. Nice to see that namerd is picking up the correct IPs.

If traffic is being correctly routed through linkerd to the green ips, and it’s only the delegator that’s not working, it sounds like an admin ui/delegator bug. Does the namerd delegator endpoint reflect the changes?

yep, delegator.json giving correct ips for Namerd when I change dtab for flipping.

okay, and is linkerd routing the traffic correctly? Even though the delegator.json ips are wrong?

that is correct, linkerd is routing correctly.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.