Does Consul Service Router Work With MeshService As Its Destination?

Hi All,

I have a meshed service api-router and its route rule:

apiVersion: consul.hashicorp.com/v1alpha1
kind: ServiceRouter
metadata:
name: api-router
spec:
routes:
- match:
http:
pathPrefix: /api/abc/v1
destination:
service: legacy-svc-meshservice
requestTimeout: 15s
numRetries: 5
retryOnConnectFailure: true


And this is the MeshService and Service Resolver definition:
apiVersion: consul.hashicorp.com/v1alpha1
kind: MeshService
metadata:
name: legacy-svc-meshservice # referenced by ServiceRouter
spec:
name: legacy-service # registered consul catalog service, not kubernetes service

apiVersion: consul.hashicorp.com/v1alpha1
kind: ServiceResolver
metadata:
name: legacy-service-resolver
spec:
redirect:
service: legacy-service


And I have legacy-service registered as a Consul catalog servie that points to external endpoint and port

However, I always get 503 error when I hit api-router/api/abc/v1

I am aware that MeshService can be a BackEnd for HttpRoute (I confirmed it work) but not sure if it works with Service Router .

Thanks!
~K

I’ve found the issue.
Actually for Service Router, there is no need to use the MeshService resource (Only for HttpRoute as its backend).
The issue was that I didn’t route it to the Terminating GW correctly.
Thank you!
~K