# This proxy listens on 2 ports: # # 10000 -> routes to `service-1` # 10001 -> routes to `envoy-2` static_resources: listeners: - address: socket_address: address: 0.0.0.0 port_value: 10000 traffic_direction: INBOUND filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager tracing: provider: name: envoy.tracers.opentelemetry typed_config: "@type": type.googleapis.com/envoy.config.trace.v3.OpenTelemetryConfig grpc_service: envoy_grpc: cluster_name: opentelemetry_collector timeout: 0.250s service_name: envoy-1 codec_type: AUTO stat_prefix: ingress_http http_filters: - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router route_config: name: service1_route virtual_hosts: - name: service1 domains: - "*" routes: - match: prefix: "/" route: cluster: service_cluster1 decorator: operation: routeToService1 - address: socket_address: address: 0.0.0.0 port_value: 10001 traffic_direction: OUTBOUND filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager tracing: provider: name: envoy.tracers.opentelemetry typed_config: "@type": type.googleapis.com/envoy.config.trace.v3.OpenTelemetryConfig grpc_service: envoy_grpc: cluster_name: opentelemetry_collector timeout: 0.250s service_name: envoy-1 codec_type: AUTO stat_prefix: egress_http http_filters: - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router route_config: name: envoy2_route virtual_hosts: - name: envoy2 domains: - "*" routes: - match: prefix: "/" route: cluster: envoy_cluster2 decorator: operation: routeToEnvoy2 clusters: - name: service_cluster1 type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: cluster_name: service_cluster1 endpoints: - lb_endpoints: - endpoint: address: socket_address: address: service-1 port_value: 8080 - name: envoy_cluster2 type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: cluster_name: envoy_cluster2 endpoints: - lb_endpoints: - endpoint: address: socket_address: address: envoy-2 port_value: 10000 - name: opentelemetry_collector type: STRICT_DNS lb_policy: ROUND_ROBIN typed_extension_protocol_options: envoy.extensions.upstreams.http.v3.HttpProtocolOptions: "@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions explicit_http_config: http2_protocol_options: {} load_assignment: cluster_name: opentelemetry_collector endpoints: - lb_endpoints: - endpoint: address: socket_address: address: opentelemetry port_value: 4317