gateway icon indicating copy to clipboard operation
gateway copied to clipboard

Support Additional External Processing Options

Open guydc opened this issue 1 year ago • 1 comments

Description: Envoy Gateway allows an External Processing filter to be configured. However, only a BackendRef can be provided, and all other External Processing attributes are set to Envoy defaults.

End-users may need to configure additional options to create meaningful integrations with external processing services. The following options are important:

  • Defining how bodies and headers (of both requests and responses) are being processed
  • Which Dynamic Metadata namespaces are available and mutable for the external processor
  • Which Envoy attributes are shared as context with the external processor
  • Timeout settings
  • FailOpen mode
  • Supporting multiple BackendRefs

Below is an example of the API:

apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyExtensionPolicy
metadata:
  name: ext-proc-policy
  namespace: default
spec:
  extProc:
  - backendRef:
      group: ""
      kind: Service
      name: myExtProc
      port: 3000
    processingMode:
      request:
        headers: Send
        body: Buffered
      response:
        headers: Skip
        body: Streamed
    attributes:
      request:
      - xds.route_metadata
      - connection.requested_server_name
      response:
      - request.path
    metadataOptions:
      forwardingNamespaces:
        untyped:
        - envoy.filters.http.ext_authz
      receivingNamespaces:
        untyped:
        - envoy.filters.http.my_custom
    messageTimeout: 5s
    failOpen: true
  targetRef:
    group: gateway.networking.k8s.io
    kind: Gateway
    name: eg
    namespace: default

Relevant Links:

  • https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_proc/v3/ext_proc.proto

guydc avatar Apr 10 '24 17:04 guydc

This issue has been automatically marked as stale because it has not had activity in the last 30 days.

github-actions[bot] avatar May 10 '24 20:05 github-actions[bot]

This issue has been automatically marked as stale because it has not had activity in the last 30 days.

github-actions[bot] avatar Jul 05 '24 00:07 github-actions[bot]