Skip to content

Field reference for listeners, filter chains, filter chain matching and the downstream TLS context.

Listeners are declared under envoy_bootstrap.static_resources.listeners (or delivered over xDS) using standard Envoy field names; any field not listed here makes Arion refuse the configuration (see supported configuration).

listener

FieldTypeRequiredDefaultDescription
namestringyes—Unique listener name.
addressobjectyes*—socket_address with an IP literal address and a port_value. Hostnames, named ports and pipe addresses are rejected.
internal_listenerobjectyes*—Marks the listener as internal (internal_listener: {}); it has no address and is reached through cluster endpoints with an envoy_internal_address.
filter_chainslistyes—At least one filter chain. Every filter_chain_match in the list must be unique.
listener_filterslistno[]Listener filters that run before a filter chain is chosen.
socket_optionslistno—At most one entry, and only SO_BINDTODEVICE (level: 1, name: 25, buf_value set to the interface name).
tcp_backlog_sizeuint32no128Length of the kernel accept queue for the listening socket.
access_loglistno[]Connection-level access logs (file, stdout or stderr sinks). See access log operators.

* exactly one of address or internal_listener.

static_resources:
  listeners:
    - name: listener_http
      address:
        socket_address: { address: 0.0.0.0, port_value: 8080 }
      tcp_backlog_size: 1024
      filter_chains:
        - name: default
          filters:
            - name: http_gateway
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                # see the HTTP connection manager reference

filter_chain

FieldTypeRequiredDefaultDescription
namestringyes—Filter chain name.
filter_chain_matchobjectnomatch allMatch criteria that select this chain for a connection.
filterslistyes—Network filters. The last entry must be an HTTP connection manager or a TCP proxy.
transport_socketobjectnoplaintextA DownstreamTlsContext to terminate TLS, or a RawBuffer for explicit plaintext.

filter_chain_match

All configured criteria must match; when several chains match, the most specific value wins (for example exact SNI beats *.example.com, which beats a chain with no server_names).

FieldTypeRequiredDefaultDescription
destination_portuint16noanyDestination port of the connection.
prefix_rangeslistnoanyDestination CIDR ranges, each {address_prefix, prefix_len}.
server_nameslistnoanyTLS SNI names. Exact (api.example.com) or subdomain wildcard (*.example.com). A bare * and internal wildcards are rejected. Requires the TLS inspector listener filter.
source_prefix_rangeslistnoanySource CIDR ranges.
source_portslistnoanySource ports.
filter_chains:
  - name: api_chain
    filter_chain_match:
      server_names: [api.example.com]
      destination_port: 8443
    filters:
      # network filters, ending in an HTTP connection manager or TCP proxy

Network filters

filters entries are {name, typed_config} pairs. Accepted @type values:

@type (under type.googleapis.com/)PositionDescription
envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManagerterminalHTTP connection manager; exactly one terminal filter per chain.
envoy.extensions.filters.network.tcp_proxy.v3.TcpProxyterminalTCP proxy; alternative terminal filter.
envoy.extensions.filters.network.rbac.v3.RBACbefore terminalNetwork RBAC; may appear more than once.
envoy.extensions.filters.network.ratelimit.v3.RateLimitbefore terminalGlobal rate limit; at most once. Without a TLS inspector its domain is required.
envoy.extensions.filters.network.connection_limit.v3.ConnectionLimitbefore terminalConnection limit; at most once.

Listener filters

listener_filters entries are {name, typed_config} pairs. Accepted @type values:

@type (under type.googleapis.com/)Description
envoy.extensions.filters.listener.tls_inspector.v3.TlsInspectorReads the TLS ClientHello so server_names matching works. enable_ja3_fingerprinting is accepted only as false. See TLS inspector.
envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocolParses PROXY protocol v1/v2 headers. See proxy protocol.
envoy.extensions.filters.listener.local_ratelimit.v3.LocalRateLimitToken-bucket limit on accepted connections. See local rate limit.
listener_filters:
  - name: tls_inspector
    typed_config:
      "@type": type.googleapis.com/envoy.extensions.filters.listener.tls_inspector.v3.TlsInspector
      enable_ja3_fingerprinting: false

TLS (DownstreamTlsContext)

Set as the filter chain transport_socket with @type: type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext.

FieldTypeRequiredDefaultDescription
common_tls_contextobjectyes—Certificates, TLS parameters and peer validation (below).
require_client_certificateboolnofalseRequire and verify a client certificate (mTLS). Needs a validation_context.

common_tls_context

FieldTypeRequiredDefaultDescription
tls_certificateslistone of—Inline server certificates, each {certificate_chain, private_key} data sources.
tls_certificate_sds_secret_configslistone of—Named references (- name: <secret>) to secrets. Only the name field is accepted.
tls_paramsobjectnosee belowProtocol version bounds.
validation_contextobjectnono client authInline {trusted_ca, trust_chain_verification} for verifying client certificates.
validation_context_sds_secret_configobjectno—Named reference (name: <secret>) to a validation-context secret.

tls_certificates and tls_certificate_sds_secret_configs are mutually exclusive. Not supported (the config is refused): alpn_protocols, cipher_suites, ecdh_curves, signature_algorithms, require_sni, combined_validation_context, session ticket keys and stateful session resumption.

tls_params

FieldTypeRequiredDefaultDescription
tls_minimum_protocol_versionenumnoTLSv1_2TLSv1_2 or TLSv1_3. TLS 1.0 and 1.1 are rejected; TLS_AUTO means 1.2.
tls_maximum_protocol_versionenumnoautoTLSv1_2 or TLSv1_3; must not be lower than the minimum.
transport_socket:
  name: envoy.transport_sockets.tls
  typed_config:
    "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
    common_tls_context:
      tls_params:
        tls_minimum_protocol_version: TLSv1_2
      tls_certificate_sds_secret_configs:
        - name: example_com_cert

Continue

Start typing to search the site.

↑ ↓ to move Enter to open Esc to close