Accessing an external service via Terminating gateway from an other DC

Hello,

I have an issue regarding the access to an external service cross datacenter :

I have 2 datacenters, both have a mesh gateway, in the first one I have a basic http service (and its sidecar) who is supposed to reach my external service on dc2 via an upstream.

On dc2 I have a mesh gateway, a terminating gateway and a standalone service (e.g. without envoy sidecar). I followed the documentation and added the external service via the catalogue and added a healthcheck, it registers well and passes the check.

The problem comes when I try to reach this external service from my http service. I just end up with “no healthy upstream”

If I put the my http service in dc2 it works fine, I can cURL my external service, but I don’t really want to have a terminating gateway on each of my dc’s.

Here are the config files for reference :

Kind = "terminating-gateway"
Name = "terminating-gateway"
Services = [
 {
   Name = "elasticsearch"
 }
]
Kind      = "proxy-defaults"
Name      = "global"
Config {
  protocol = "http"
}
MeshGateway {
  mode = "local"
}
{
    "Node": "elk",
    "Address": "10.7.0.11",
    "NodeMeta": {
      "external-node": "true",
      "external-probe": "true"
    },
    "Service": {
      "ID": "elasticsearch1",
      "Service": "elasticsearch",
      "Port": 9200
    },
    "Checks": [
      {
        "Name": "http-check",
        "status": "passing",
        "Definition": {
          "http": "http://10.7.0.11:9200",
          "interval": "10s"
        }
      }
    ]
}
service {
  name = "mock"
  [...]
      proxy {
        upstreams {
          destination_name = "elasticsearch"
          local_bind_address = "127.0.0.1"
          local_bind_port = 9099
        }
  [...]
}

Thanks for you help.
Marius