mirror of https://github.com/hashicorp/consul
Browse Source
* NET-5073 - ProxyConfiguration: implement various connection options * PR feedback - LocalConnection and InboundConnection do not affect exposed routes. configure L7 route destinations. fix connection proto sequence numbers. * add timeout to L7 Route Destinationspull/19230/head
John Murret
1 year ago
committed by
GitHub
6 changed files with 444 additions and 27 deletions
@ -0,0 +1,300 @@
|
||||
{ |
||||
"proxyState": { |
||||
"clusters": { |
||||
"exposed_cluster_9090": { |
||||
"endpointGroup": { |
||||
"static": {} |
||||
}, |
||||
"name": "exposed_cluster_9090" |
||||
}, |
||||
"exposed_cluster_9091": { |
||||
"endpointGroup": { |
||||
"static": {} |
||||
}, |
||||
"name": "exposed_cluster_9091" |
||||
}, |
||||
"local_app:port1": { |
||||
"endpointGroup": { |
||||
"static": { |
||||
"config": { |
||||
"connectTimeout": "6s", |
||||
"circuitBreakers": { |
||||
"upstreamLimits": { |
||||
"maxConnections": 123 |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"name": "local_app:port1" |
||||
}, |
||||
"local_app:port3": { |
||||
"endpointGroup": { |
||||
"static": { |
||||
"config": { |
||||
"connectTimeout": "8s", |
||||
"circuitBreakers": { |
||||
"upstreamLimits": { |
||||
"maxConnections": 123 |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"name": "local_app:port3" |
||||
} |
||||
}, |
||||
"endpoints": { |
||||
"exposed_cluster_9090": { |
||||
"endpoints": [ |
||||
{ |
||||
"hostPort": { |
||||
"host": "127.0.0.1", |
||||
"port": 9090 |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
"exposed_cluster_9091": { |
||||
"endpoints": [ |
||||
{ |
||||
"hostPort": { |
||||
"host": "127.0.0.1", |
||||
"port": 9091 |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
"local_app:port1": { |
||||
"endpoints": [ |
||||
{ |
||||
"hostPort": { |
||||
"host": "127.0.0.1", |
||||
"port": 8080 |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
"local_app:port3": { |
||||
"endpoints": [ |
||||
{ |
||||
"hostPort": { |
||||
"host": "127.0.0.1", |
||||
"port": 8081 |
||||
} |
||||
} |
||||
] |
||||
} |
||||
}, |
||||
"identity": { |
||||
"name": "test-identity", |
||||
"tenancy": { |
||||
"namespace": "default", |
||||
"partition": "default", |
||||
"peerName": "local" |
||||
}, |
||||
"type": { |
||||
"group": "auth", |
||||
"groupVersion": "v2beta1", |
||||
"kind": "WorkloadIdentity" |
||||
} |
||||
}, |
||||
"listeners": [ |
||||
{ |
||||
"capabilities": [ |
||||
"CAPABILITY_L4_TLS_INSPECTION" |
||||
], |
||||
"direction": "DIRECTION_INBOUND", |
||||
"hostPort": { |
||||
"host": "10.0.0.1", |
||||
"port": 20000 |
||||
}, |
||||
"name": "public_listener", |
||||
"balanceConnections": "BALANCE_CONNECTIONS_EXACT", |
||||
"routers": [ |
||||
{ |
||||
"inboundTls": { |
||||
"inboundMesh": { |
||||
"identityKey": "test-identity", |
||||
"validationContext": { |
||||
"trustBundlePeerNameKeys": [ |
||||
"local" |
||||
] |
||||
} |
||||
} |
||||
}, |
||||
"l4": { |
||||
"cluster": { |
||||
"name": "local_app:port1" |
||||
}, |
||||
"maxInboundConnections": 123, |
||||
"statPrefix": "public_listener", |
||||
"trafficPermissions": {} |
||||
}, |
||||
"match": { |
||||
"alpnProtocols": [ |
||||
"consul~port1" |
||||
] |
||||
} |
||||
}, |
||||
{ |
||||
"inboundTls": { |
||||
"inboundMesh": { |
||||
"identityKey": "test-identity", |
||||
"validationContext": { |
||||
"trustBundlePeerNameKeys": [ |
||||
"local" |
||||
] |
||||
} |
||||
} |
||||
}, |
||||
"l7": { |
||||
"route": { |
||||
"name": "public_listener:port3" |
||||
}, |
||||
"maxInboundConnections": 123, |
||||
"statPrefix": "public_listener", |
||||
"staticRoute": true, |
||||
"trafficPermissions": {} |
||||
}, |
||||
"match": { |
||||
"alpnProtocols": [ |
||||
"consul~port3" |
||||
] |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"direction": "DIRECTION_INBOUND", |
||||
"hostPort": { |
||||
"host": "10.0.0.1", |
||||
"port": 9090 |
||||
}, |
||||
"name": "exposed_path_health", |
||||
"routers": [ |
||||
{ |
||||
"l7": { |
||||
"route": { |
||||
"name": "exposed_path_filter_health_1234" |
||||
}, |
||||
"statPrefix": "exposed_path_filter_health_1234", |
||||
"staticRoute": true |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
{ |
||||
"direction": "DIRECTION_INBOUND", |
||||
"hostPort": { |
||||
"host": "10.0.0.1", |
||||
"port": 9091 |
||||
}, |
||||
"name": "exposed_path_GetHealth", |
||||
"routers": [ |
||||
{ |
||||
"l7": { |
||||
"protocol": "L7_PROTOCOL_HTTP2", |
||||
"route": { |
||||
"name": "exposed_path_filter_GetHealth_1235" |
||||
}, |
||||
"statPrefix": "exposed_path_filter_GetHealth_1235", |
||||
"staticRoute": true |
||||
} |
||||
} |
||||
] |
||||
} |
||||
], |
||||
"routes": { |
||||
"exposed_path_filter_GetHealth_1235": { |
||||
"virtualHosts": [ |
||||
{ |
||||
"domains": [ |
||||
"*" |
||||
], |
||||
"name": "exposed_path_filter_GetHealth_1235", |
||||
"routeRules": [ |
||||
{ |
||||
"destination": { |
||||
"cluster": { |
||||
"name": "exposed_cluster_9091" |
||||
} |
||||
}, |
||||
"match": { |
||||
"pathMatch": { |
||||
"exact": "GetHealth" |
||||
} |
||||
} |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
"exposed_path_filter_health_1234": { |
||||
"virtualHosts": [ |
||||
{ |
||||
"domains": [ |
||||
"*" |
||||
], |
||||
"name": "exposed_path_filter_health_1234", |
||||
"routeRules": [ |
||||
{ |
||||
"destination": { |
||||
"cluster": { |
||||
"name": "exposed_cluster_9090" |
||||
} |
||||
}, |
||||
"match": { |
||||
"pathMatch": { |
||||
"exact": "/health" |
||||
} |
||||
} |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
"public_listener:port3": { |
||||
"virtualHosts": [ |
||||
{ |
||||
"domains": [ |
||||
"*" |
||||
], |
||||
"name": "public_listener:port3", |
||||
"routeRules": [ |
||||
{ |
||||
"destination": { |
||||
"cluster": { |
||||
"name": "local_app:port3" |
||||
}, |
||||
"destinationConfiguration": { |
||||
"timeoutConfig": { |
||||
"timeout": "9s" |
||||
} |
||||
} |
||||
}, |
||||
"match": { |
||||
"pathMatch": { |
||||
"prefix": "/" |
||||
} |
||||
} |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
} |
||||
}, |
||||
"requiredLeafCertificates": { |
||||
"test-identity": { |
||||
"name": "test-identity", |
||||
"namespace": "default", |
||||
"partition": "default" |
||||
} |
||||
}, |
||||
"requiredTrustBundles": { |
||||
"local": { |
||||
"peer": "local" |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue