static_resources: listeners: # There is a single listener bound to port 443. - name: listener_https address: socket_address: protocol: TCP address: 0.0.0.0 port_value: 443 # A single listener filter exists for TLS inspector. listener_filters: - name: "envoy.filters.listener.tls_inspector" typed_config: {} # On the listener, there is a single filter chain that matches SNI for acme.com. filter_chains: - filter_chain_match: # This will match the SNI extracted by the TLS Inspector filter. server_names: ["acme.com"] # Downstream TLS configuration. transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext common_tls_context: tls_certificates: - certificate_chain: { filename: "certs/servercert.pem" } private_key: { filename: "certs/serverkey.pem" } filters: # The HTTP connection manager is the only network filter. - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress_http use_remote_address: true http2_protocol_options: max_concurrent_streams: 100 # File system based access logging. access_log: - name: envoy.access_loggers.file typed_config: "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog path: "/var/log/envoy/access.log" # The route table, mapping /foo to some_service. route_config: name: local_route virtual_hosts: - name: local_service domains: ["acme.com"] routes: - match: path: "/foo" route: cluster: some_service # CustomFilter and the HTTP router filter are the HTTP filter chain. http_filters: # - name: some.customer.filter - name: envoy.filters.http.router clusters: - name: some_service connect_timeout: 5s # Upstream TLS configuration. transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext load_assignment: cluster_name: some_service # Static endpoint assignment. endpoints: - lb_endpoints: - endpoint: address: socket_address: address: 10.1.2.10 port_value: 10002 - endpoint: address: socket_address: address: 10.1.2.11 port_value: 10002 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: max_concurrent_streams: 100 - name: some_statsd_sink connect_timeout: 5s # The rest of the configuration for statsd sink cluster. # statsd sink. stats_sinks: - name: envoy.stat_sinks.statsd typed_config: "@type": type.googleapis.com/envoy.config.metrics.v3.StatsdSink tcp_cluster_name: some_statsd_sink