static_resources: listeners: - name: listener_0 address: socket_address: address: 0.0.0.0 port_value: 8080 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 codec_type: auto stat_prefix: ingress_http route_config: name: local_route virtual_hosts: - name: local_service domains: ["*"] routes: - match: prefix: "/" route: cluster: postgrpc timeout: 0s rate_limits: - actions: - request_headers: header_name: "x-postgres-role" descriptor_key: role max_stream_duration: grpc_timeout_header_max: 0s http_filters: - name: envoy.filters.http.ratelimit typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.ratelimit.v3.RateLimit domain: postgrpc rate_limited_as_resource_exhausted: true rate_limit_service: grpc_service: envoy_grpc: cluster_name: ratelimit transport_api_version: v3 - name: envoy.filters.http.grpc_json_transcoder typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder proto_descriptor: "/proto/postgrpc.pb" services: - "postgres.v1.Postgres" convert_grpc_status: true auto_mapping: false print_options: add_whitespace: true always_print_primitive_fields: true always_print_enums_as_ints: false preserve_proto_field_names: false - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router - name: listener_1 address: socket_address: address: 0.0.0.0 port_value: 8081 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 codec_type: auto stat_prefix: ingress_http route_config: name: local_route virtual_hosts: - name: local_service domains: ["*"] routes: - match: prefix: "/" route: cluster: postgrpc-admin timeout: 0s max_stream_duration: grpc_timeout_header_max: 0s http_filters: - name: envoy.filters.http.grpc_json_transcoder typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder proto_descriptor: "/proto/postgrpc.pb" services: - "postgres.v1.Postgres" convert_grpc_status: true auto_mapping: false print_options: add_whitespace: true always_print_primitive_fields: true always_print_enums_as_ints: false preserve_proto_field_names: false - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router clusters: - name: postgrpc connect_timeout: 0.25s type: logical_dns dns_lookup_family: v4_only 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: {} lb_policy: round_robin load_assignment: cluster_name: postgrpc endpoints: - lb_endpoints: - endpoint: address: socket_address: address: postgrpc port_value: 50051 - name: postgrpc-admin connect_timeout: 0.25s type: logical_dns dns_lookup_family: v4_only 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: {} lb_policy: round_robin load_assignment: cluster_name: postgrpc-admin endpoints: - lb_endpoints: - endpoint: address: socket_address: address: postgrpc-admin port_value: 50052 - name: ratelimit type: strict_dns connect_timeout: 1s lb_policy: round_robin protocol_selection: use_configured_protocol http2_protocol_options: {} load_assignment: cluster_name: ratelimit endpoints: - lb_endpoints: - endpoint: address: socket_address: address: ratelimit port_value: 8081