summaryrefslogtreecommitdiff
path: root/etc/envoy
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-03 14:58:22 -0600
committermo khan <mo@mokhan.ca>2025-07-03 14:58:22 -0600
commit8f2d083fb29b5dbd5bbe185119efd4246a818f65 (patch)
tree66616d17fd908d1eee828a57413feb34f9914c66 /etc/envoy
parent22349f2dd5141bbb1247a4f374d39a9a091f0243 (diff)
chore: add envoy configuration
Diffstat (limited to 'etc/envoy')
-rw-r--r--etc/envoy/envoy.yaml109
1 files changed, 109 insertions, 0 deletions
diff --git a/etc/envoy/envoy.yaml b/etc/envoy/envoy.yaml
new file mode 100644
index 00000000..e050a49e
--- /dev/null
+++ b/etc/envoy/envoy.yaml
@@ -0,0 +1,109 @@
+admin:
+ address:
+ socket_address:
+ address: 0.0.0.0
+ port_value: 9901
+application_log_config:
+ log_format:
+ json_format:
+ Timestamp: "%Y-%m-%dT%T.%F"
+ ThreadId: "%t"
+ SourceLine: "%s:%#"
+ Level: "%l"
+ Message: "%j"
+overload_manager:
+ resource_monitors:
+ - name: "envoy.resource_monitors.global_downstream_max_connections"
+ typed_config:
+ "@type": type.googleapis.com/envoy.extensions.resource_monitors.downstream_connections.v3.DownstreamConnectionsConfig
+ max_active_downstream_connections: 1024
+static_resources:
+ clusters:
+ - name: authzd
+ connect_timeout: 5s
+ load_assignment:
+ cluster_name: authzd
+ endpoints:
+ - lb_endpoints:
+ - endpoint:
+ address:
+ socket_address:
+ address: 127.0.0.1
+ port_value: 50051
+ 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: {}
+ listeners:
+ - name: listener_0
+ address:
+ socket_address:
+ protocol: TCP
+ address: 0.0.0.0
+ port_value: 10000
+ 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
+ access_log:
+ - name: envoy.access_loggers.stdout
+ typed_config:
+ "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
+ log_format:
+ json_format:
+ app: "envoy"
+ authority: "%REQ(:AUTHORITY)%"
+ bytes_received: "%BYTES_RECEIVED%"
+ bytes_sent: "%BYTES_SENT%"
+ client_ip: "%DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%"
+ duration: "%DURATION%"
+ forwarded_for: "%REQ(X-FORWARDED-FOR)%"
+ method: "%REQ(:METHOD)%"
+ path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%"
+ protocol: "%PROTOCOL%"
+ request_id: "%REQ(X-REQUEST-ID)%"
+ response_code: "%RESPONSE_CODE%"
+ timestamp: "%START_TIME%"
+ user_agent: "%REQ(USER-AGENT)%"
+ codec_type: AUTO
+ http_filters:
+ - name: envoy.filters.http.health_check
+ typed_config:
+ "@type": type.googleapis.com/envoy.extensions.filters.http.health_check.v3.HealthCheck
+ pass_through_mode: false
+ headers:
+ - name: ":path"
+ string_match:
+ exact: "/health"
+ - name: envoy.filters.http.ext_authz
+ typed_config:
+ "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
+ grpc_service:
+ envoy_grpc:
+ cluster_name: authzd
+ timeout: 30s
+ failure_mode_allow: false
+ - name: envoy.filters.http.router
+ typed_config:
+ "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
+ suppress_envoy_headers: true
+ route_config:
+ request_headers_to_remove:
+ - authorization
+ - cookie
+ - user-agent
+ virtual_hosts:
+ - name: local
+ domains: ["*"]
+ routes:
+ - match:
+ prefix: "/"
+ route:
+ cluster: authzd
+ timeout: 5s
+ retry_policy:
+ retry_on: "5xx"
+ num_retries: 3
+ stat_prefix: ingress_http