mirror of
https://github.com/status-im/consul.git
synced 2025-01-15 00:04:47 +00:00
247f9eaf13
This commit adds the necessary changes to allow an ingress gateway to route traffic from a single defined port to multiple different upstream services in the Consul mesh. To do this, we now require all HTTP requests coming into the ingress gateway to specify a Host header that matches "<service-name>.*" in order to correctly route traffic to the correct service. - Differentiate multiple listener's route names by port - Adds a case in xds for allowing default discovery chains to create a route configuration when on an ingress gateway. This allows default services to easily use host header routing - ingress-gateways have a single route config for each listener that utilizes domain matching to route to different services.
85 lines
1.9 KiB
Plaintext
85 lines
1.9 KiB
Plaintext
{
|
|
"versionInfo": "00000001",
|
|
"resources": [
|
|
{
|
|
"@type": "type.googleapis.com/envoy.api.v2.RouteConfiguration",
|
|
"name": "http_443",
|
|
"virtualHosts": [
|
|
{
|
|
"name": "baz",
|
|
"domains": [
|
|
"baz.*"
|
|
],
|
|
"routes": [
|
|
{
|
|
"match": {
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "baz.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "qux",
|
|
"domains": [
|
|
"qux.*"
|
|
],
|
|
"routes": [
|
|
{
|
|
"match": {
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "qux.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"validateClusters": true
|
|
},
|
|
{
|
|
"@type": "type.googleapis.com/envoy.api.v2.RouteConfiguration",
|
|
"name": "http_8080",
|
|
"virtualHosts": [
|
|
{
|
|
"name": "foo",
|
|
"domains": [
|
|
"foo.*"
|
|
],
|
|
"routes": [
|
|
{
|
|
"match": {
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "foo.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "bar",
|
|
"domains": [
|
|
"bar.*"
|
|
],
|
|
"routes": [
|
|
{
|
|
"match": {
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "bar.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"validateClusters": true
|
|
}
|
|
],
|
|
"typeUrl": "type.googleapis.com/envoy.api.v2.RouteConfiguration",
|
|
"nonce": "00000001"
|
|
} |