|
| 1 | +static_resources: |
| 2 | + listeners: |
| 3 | + - name: listener_0 |
| 4 | + address: |
| 5 | + socket_address: |
| 6 | + address: 0.0.0.0 |
| 7 | + port_value: 8801 |
| 8 | + filter_chains: |
| 9 | + - filters: |
| 10 | + - name: envoy.filters.network.http_connection_manager |
| 11 | + typed_config: |
| 12 | + "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager |
| 13 | + stat_prefix: ingress_http |
| 14 | + access_log: |
| 15 | + - name: envoy.access_loggers.stdout |
| 16 | + typed_config: |
| 17 | + "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog |
| 18 | + log_format: |
| 19 | + json_format: |
| 20 | + time: "%START_TIME%" |
| 21 | + protocol: "%PROTOCOL%" |
| 22 | + request_method: "%REQ(:METHOD)%" |
| 23 | + request_path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" |
| 24 | + response_code: "%RESPONSE_CODE%" |
| 25 | + response_flags: "%RESPONSE_FLAGS%" |
| 26 | + bytes_received: "%BYTES_RECEIVED%" |
| 27 | + bytes_sent: "%BYTES_SENT%" |
| 28 | + duration: "%DURATION%" |
| 29 | + upstream_host: "%UPSTREAM_HOST%" |
| 30 | + upstream_cluster: "%UPSTREAM_CLUSTER%" |
| 31 | + upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%" |
| 32 | + request_id: "%REQ(X-REQUEST-ID)%" |
| 33 | + selected_model: "%REQ(X-SELECTED-MODEL)%" |
| 34 | + selected_endpoint: "%REQ(X-SEMANTIC-DESTINATION-ENDPOINT)%" |
| 35 | + route_config: |
| 36 | + name: local_route |
| 37 | + virtual_hosts: |
| 38 | + - name: local_service |
| 39 | + domains: ["*"] |
| 40 | + routes: |
| 41 | + # Single route using original destination cluster |
| 42 | + - match: |
| 43 | + prefix: "/" |
| 44 | + route: |
| 45 | + cluster: vllm_dynamic_cluster |
| 46 | + timeout: 300s |
| 47 | + http_filters: |
| 48 | + - name: envoy.filters.http.ext_proc |
| 49 | + typed_config: |
| 50 | + "@type": type.googleapis.com/envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor |
| 51 | + grpc_service: |
| 52 | + envoy_grpc: |
| 53 | + cluster_name: extproc_service |
| 54 | + allow_mode_override: true |
| 55 | + processing_mode: |
| 56 | + request_header_mode: "SEND" |
| 57 | + response_header_mode: "SEND" |
| 58 | + request_body_mode: "BUFFERED" |
| 59 | + response_body_mode: "BUFFERED" |
| 60 | + request_trailer_mode: "SKIP" |
| 61 | + response_trailer_mode: "SKIP" |
| 62 | + failure_mode_allow: true |
| 63 | + message_timeout: 300s |
| 64 | + - name: envoy.filters.http.router |
| 65 | + typed_config: |
| 66 | + "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router |
| 67 | + suppress_envoy_headers: true |
| 68 | + http2_protocol_options: |
| 69 | + max_concurrent_streams: 100 |
| 70 | + initial_stream_window_size: 65536 |
| 71 | + initial_connection_window_size: 1048576 |
| 72 | + stream_idle_timeout: "300s" |
| 73 | + request_timeout: "300s" |
| 74 | + common_http_protocol_options: |
| 75 | + idle_timeout: "300s" |
| 76 | + |
| 77 | + clusters: |
| 78 | + - name: extproc_service |
| 79 | + connect_timeout: 300s |
| 80 | + per_connection_buffer_limit_bytes: 52428800 |
| 81 | + type: STATIC |
| 82 | + lb_policy: ROUND_ROBIN |
| 83 | + typed_extension_protocol_options: |
| 84 | + envoy.extensions.upstreams.http.v3.HttpProtocolOptions: |
| 85 | + "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions |
| 86 | + explicit_http_config: |
| 87 | + http2_protocol_options: |
| 88 | + connection_keepalive: |
| 89 | + interval: 300s |
| 90 | + timeout: 300s |
| 91 | + load_assignment: |
| 92 | + cluster_name: extproc_service |
| 93 | + endpoints: |
| 94 | + - lb_endpoints: |
| 95 | + - endpoint: |
| 96 | + address: |
| 97 | + socket_address: |
| 98 | + address: semantic-router # Use Docker service name |
| 99 | + port_value: 50051 |
| 100 | + |
| 101 | + # Dynamic vLLM cluster using original destination |
| 102 | + - name: vllm_dynamic_cluster |
| 103 | + connect_timeout: 300s |
| 104 | + per_connection_buffer_limit_bytes: 52428800 |
| 105 | + type: ORIGINAL_DST |
| 106 | + lb_policy: CLUSTER_PROVIDED |
| 107 | + original_dst_lb_config: |
| 108 | + use_http_header: true |
| 109 | + http_header_name: "x-semantic-destination-endpoint" |
| 110 | + typed_extension_protocol_options: |
| 111 | + envoy.extensions.upstreams.http.v3.HttpProtocolOptions: |
| 112 | + "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions |
| 113 | + explicit_http_config: |
| 114 | + http_protocol_options: {} |
| 115 | + |
| 116 | +admin: |
| 117 | + address: |
| 118 | + socket_address: |
| 119 | + address: "0.0.0.0" |
| 120 | + port_value: 19000 |
0 commit comments