mirror of https://github.com/hashicorp/consul
461 lines
14 KiB
Plaintext
461 lines
14 KiB
Plaintext
{
|
|
"nonce": "00000001",
|
|
"resources": [
|
|
{
|
|
"@type": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration",
|
|
"name": "8080",
|
|
"virtualHosts": [
|
|
{
|
|
"domains": [
|
|
"db.ingress.*",
|
|
"db.ingress.*:8080"
|
|
],
|
|
"name": "db",
|
|
"requestHeadersToAdd": [
|
|
{
|
|
"header": {
|
|
"key": "foo",
|
|
"value": "bar"
|
|
}
|
|
},
|
|
{
|
|
"appendAction": "OVERWRITE_IF_EXISTS_OR_ADD",
|
|
"header": {
|
|
"key": "bar",
|
|
"value": "baz"
|
|
}
|
|
}
|
|
],
|
|
"requestHeadersToRemove": [
|
|
"qux"
|
|
],
|
|
"responseHeadersToAdd": [
|
|
{
|
|
"header": {
|
|
"key": "foo",
|
|
"value": "bar"
|
|
}
|
|
},
|
|
{
|
|
"appendAction": "OVERWRITE_IF_EXISTS_OR_ADD",
|
|
"header": {
|
|
"key": "bar",
|
|
"value": "baz"
|
|
}
|
|
}
|
|
],
|
|
"responseHeadersToRemove": [
|
|
"qux"
|
|
],
|
|
"routes": [
|
|
{
|
|
"match": {
|
|
"prefix": "/prefix"
|
|
},
|
|
"route": {
|
|
"cluster": "prefix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"path": "/exact"
|
|
},
|
|
"route": {
|
|
"cluster": "exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"safeRegex": {
|
|
"regex": "/regex"
|
|
}
|
|
},
|
|
"route": {
|
|
"cluster": "regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"headers": [
|
|
{
|
|
"name": "x-debug",
|
|
"presentMatch": true
|
|
}
|
|
],
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "hdr-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"headers": [
|
|
{
|
|
"invertMatch": true,
|
|
"name": "x-debug",
|
|
"presentMatch": true
|
|
}
|
|
],
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "hdr-not-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"headers": [
|
|
{
|
|
"name": "x-debug",
|
|
"stringMatch": {
|
|
"exact": "exact"
|
|
}
|
|
}
|
|
],
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "hdr-exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"headers": [
|
|
{
|
|
"name": "x-debug",
|
|
"stringMatch": {
|
|
"prefix": "prefix"
|
|
}
|
|
}
|
|
],
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "hdr-prefix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"headers": [
|
|
{
|
|
"name": "x-debug",
|
|
"stringMatch": {
|
|
"suffix": "suffix"
|
|
}
|
|
}
|
|
],
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "hdr-suffix.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"headers": [
|
|
{
|
|
"name": "x-debug",
|
|
"stringMatch": {
|
|
"safeRegex": {
|
|
"regex": "regex"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "hdr-regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"headers": [
|
|
{
|
|
"name": ":method",
|
|
"stringMatch": {
|
|
"safeRegex": {
|
|
"regex": "GET|PUT"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "just-methods.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"headers": [
|
|
{
|
|
"name": "x-debug",
|
|
"stringMatch": {
|
|
"exact": "exact"
|
|
}
|
|
},
|
|
{
|
|
"name": ":method",
|
|
"stringMatch": {
|
|
"safeRegex": {
|
|
"regex": "GET|PUT"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "hdr-exact-with-method.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/",
|
|
"queryParameters": [
|
|
{
|
|
"name": "secretparam1",
|
|
"stringMatch": {
|
|
"exact": "exact"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"route": {
|
|
"cluster": "prm-exact.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/",
|
|
"queryParameters": [
|
|
{
|
|
"name": "secretparam2",
|
|
"stringMatch": {
|
|
"safeRegex": {
|
|
"regex": "regex"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"route": {
|
|
"cluster": "prm-regex.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/",
|
|
"queryParameters": [
|
|
{
|
|
"name": "secretparam3",
|
|
"presentMatch": true
|
|
}
|
|
]
|
|
},
|
|
"route": {
|
|
"cluster": "prm-present.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "nil-match.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "empty-match-1.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "empty-match-2.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/prefix"
|
|
},
|
|
"route": {
|
|
"cluster": "prefix-rewrite-1.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"prefixRewrite": "/"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/prefix"
|
|
},
|
|
"route": {
|
|
"cluster": "prefix-rewrite-2.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"prefixRewrite": "/nested/newlocation"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/timeout"
|
|
},
|
|
"route": {
|
|
"cluster": "req-timeout.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"timeout": "33s"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/idle-timeout"
|
|
},
|
|
"route": {
|
|
"cluster": "idle-timeout.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"idleTimeout": "33s"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/retry-connect"
|
|
},
|
|
"route": {
|
|
"cluster": "retry-connect.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"retryPolicy": {
|
|
"numRetries": 15,
|
|
"retryOn": "connect-failure"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/retry-reset"
|
|
},
|
|
"route": {
|
|
"cluster": "retry-reset.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"retryPolicy": {
|
|
"numRetries": 15,
|
|
"retryOn": "reset"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/retry-codes"
|
|
},
|
|
"route": {
|
|
"cluster": "retry-codes.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"retryPolicy": {
|
|
"numRetries": 15,
|
|
"retriableStatusCodes": [
|
|
401,
|
|
409,
|
|
451
|
|
],
|
|
"retryOn": "retriable-status-codes"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/retry-all"
|
|
},
|
|
"route": {
|
|
"cluster": "retry-all.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"retryPolicy": {
|
|
"retriableStatusCodes": [
|
|
401,
|
|
409,
|
|
451
|
|
],
|
|
"retryOn": "5xx,gateway-error,reset,connect-failure,envoy-ratelimited,retriable-4xx,refused-stream,cancelled,deadline-exceeded,internal,resource-exhausted,unavailable,retriable-status-codes"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/split-3-ways"
|
|
},
|
|
"route": {
|
|
"weightedClusters": {
|
|
"clusters": [
|
|
{
|
|
"name": "big-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"weight": 9550
|
|
},
|
|
{
|
|
"name": "goldilocks-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"weight": 400
|
|
},
|
|
{
|
|
"name": "lil-bit-side.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul",
|
|
"weight": 50
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"path": "/header-manip"
|
|
},
|
|
"requestHeadersToAdd": [
|
|
{
|
|
"header": {
|
|
"key": "request",
|
|
"value": "bar"
|
|
}
|
|
},
|
|
{
|
|
"appendAction": "OVERWRITE_IF_EXISTS_OR_ADD",
|
|
"header": {
|
|
"key": "bar",
|
|
"value": "baz"
|
|
}
|
|
}
|
|
],
|
|
"requestHeadersToRemove": [
|
|
"qux"
|
|
],
|
|
"responseHeadersToAdd": [
|
|
{
|
|
"header": {
|
|
"key": "response",
|
|
"value": "bar"
|
|
}
|
|
},
|
|
{
|
|
"appendAction": "OVERWRITE_IF_EXISTS_OR_ADD",
|
|
"header": {
|
|
"key": "bar",
|
|
"value": "baz"
|
|
}
|
|
}
|
|
],
|
|
"responseHeadersToRemove": [
|
|
"qux"
|
|
],
|
|
"route": {
|
|
"cluster": "header-manip.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"prefix": "/"
|
|
},
|
|
"route": {
|
|
"cluster": "db.default.dc1.internal.11111111-2222-3333-4444-555555555555.consul"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"typeUrl": "type.googleapis.com/envoy.config.route.v3.RouteConfiguration",
|
|
"versionInfo": "00000001"
|
|
} |