What does dialectDirectly do in transparentProxy?

We are testing a traefik + consul integration and had to turn this option on for traefik to be able to forward requests to our services. We are following these guides from Consul docs:

The docs state:

dialed_directly (bool: false) - Determines whether this proxy instance’s IP address can be dialed directly by transparent proxies. Typically transparent proxies dial upstreams using the “virtual” tagged address, which load balances across instances. Dialing individual instances can be helpful in cases like stateful services such as a database cluster with a leader.

But we tested load balancing both via traefik and k8s service (KubeDNS) and it seems to be working. So what are the consequences of enabling this option?

Notice: We know we can use the integration using service tags, but prefer to use the k8s native ingress manifests. The service tags approach has multiple problems because the separator is a ‘,’ which traefik also uses to separated its own lists.

This allows Pod IPs to be used to route to services through the sidecar proxy. Without it, only KubeDNS URLs can be used.

This setting is useful if an ingress controller is making calls using the Pod IPs instead of the KubeDNS URLs.

1 Like

Thank you for the support!

Are there any negative consequences in enabling this? Or are we just adding the behavior you mentioned?