Hi, I am trying to integrate or build a service mesh using Envoy and Consul. All the configurations are on bare metal or VM (EC2 or GCP Compute instance) (no cloud components like k8s or docker).
We have a Nodejs (REACT) front end app and Tomcat as backend app. We started with the frontend app. But have difficulty in defining a service to talk to the app through Envoy as side-car. Can anyone help us to get it working.
Envoy (front-end) -> Envoy (side-car):80 -> App:3000 (We will use Consul as EDS)
Below is the service registration
{
“name”: “testapp”,
“connect”: {
“sidecar_service”: {
“port”: 3000,
“proxy”: {
“destination_service_name”: “testapp”,
“destination_service_id”: “abcdef”,
“local_service_address”: “127.0.0.1”,
“local_service_port”: 3000,
“config”: {
“envoy_public_listener_json”: "
{
“@type”: “type.googleapis.com/envoy.api.v2.Listener”,
“name”: “listener_testapp”,
“address”: {
“socketAddress”: {
“address”: “0.0.0.0”,
“portValue”: 80
}
},
“filterChains”: [
{
“filters”: [
{
“name”: “envoy.http_connection_manager”,
“config”: {
“stat_prefix”: “public_listener”,
“route_config”: {
“name”: “local_route”,
“virtual_hosts”: [
{
“name”: “testapp”,
“domains”: ["*"],
“routes”: [
{
“match”: {
“prefix”: “/”
},
“route”: {
“cluster”: “local_app”
}
}
]
}
]
},
“http_filters”: [
{
“name”: “envoy.router”,
“config”: {}
}
]
}
}
]
}
]
}"
}
}
}
}
}