static_resources: listeners: - name: main address: socket_address: address: 0.0.0.0 port_value: 8000 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 stat_prefix: ingress_http codec_type: auto route_config: name: local_route virtual_hosts: - name: local_service domains: - "*" routes: - match: prefix: "/" route: cluster: web_service http_filters: - name: envoy.filters.http.lua typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua inline_code: | local mylibrary = require("lib.mylibrary") function envoy_on_request(request_handle) request_handle:headers():add("foo", mylibrary.foobar()) end function envoy_on_response(response_handle) body_size = response_handle:body():length() response_handle:headers():add("response-body-size", tostring(body_size)) end - name: envoy.filters.http.router typed_config: {} clusters: - name: web_service connect_timeout: 0.25s type: strict_dns # static lb_policy: round_robin load_assignment: cluster_name: web_service endpoints: - lb_endpoints: - endpoint: address: socket_address: address: web_service port_value: 80