Skip to content

Support Additional External Processing Options #3170

@guydc

Description

@guydc

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:

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions