For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.
Static configuration
Most agentgateway configurations dynamically update as you make changes to the binds, policies, backends, and so on.
However, a few configurations are statically configured at startup. These static configurations are under the config section.
Static configuration file schema
The following table shows the config file schema for static configurations at startup. For the full agentgateway schema of dynamic and static configuration, see the reference docs.
| Field | Type | Description |
|---|---|---|
config | object | |
config.enableIpv6 | boolean | |
config.dns | object | DNS resolver settings. |
config.dns.lookupFamily | enum | Controls which IP address families the DNS resolver will query for upstream connections. Accepted values: All, Auto, V4Preferred, V4Only, V6Only. Defaults to Auto (IPv4-only when enableIpv6 is false, both when true). |
config.dns.edns0 | boolean | Whether to enable EDNS0 (Extension Mechanisms for DNS) in the resolver. When None, the system-provided resolver setting is preserved.Can also be set via the DNS_EDNS0 environment variable. |
config.localXdsPath | string | Local XDS path. If not specified, the current configuration file will be used. |
config.caAddress | string | |
config.caAuthToken | string | |
config.xdsAddress | string | |
config.xdsAuthToken | string | |
config.namespace | string | |
config.gateway | string | |
config.trustDomain | string | |
config.additionalTrustDomains | string | Comma-separated list of additional SPIFFE trust domains accepted on inbound HBONE connections. The local trust_domain is always implicitly included. |
config.skipValidateTrustDomain | boolean | When true, skip SPIFFE trust-domain verification on inbound HBONE connections. |
config.serviceAccount | string | |
config.clusterId | string | |
config.network | string | |
config.adminAddr | string | Admin UI address in the format “ip:port” |
config.statsAddr | string | Stats/metrics server address in the format “ip:port” |
config.readinessAddr | string | Readiness probe server address in the format “ip:port” |
config.session | object | Configuration for stateful session management |
config.session.key | string | The AES-256-GCM session protection key to be used for session tokens. If not set, sessions will not be encrypted. For example, generated via openssl rand -hex 32. |
| `config | `config | config.connectionTerminationDeadline |
config.connectionMinTerminationDeadline | string | |
config.workerThreads | string | |
config.tracing | object | |
config.tracing.otlpEndpoint | string | |
config.tracing.headers | object | |
config.tracing.otlpProtocol | enum | Possible values: grpc, http. |
config.tracing.fields | object | |
config.tracing.fields.remove | []string | |
config.tracing.fields.add | object | |
config.tracing.randomSampling | string | Expression to determine the amount of random sampling. Random sampling will initiate a new trace span if the incoming request does not have a trace already. This should evaluate to either a float between 0.0-1.0 (0-100%) or true/false. This defaults to ‘false’. |
config.tracing.clientSampling | string | Expression to determine the amount of client sampling. Client sampling determines whether to initiate a new trace span if the incoming request does have a trace already. This should evaluate to either a float between 0.0-1.0 (0-100%) or true/false. This defaults to ’true'. |
config.tracing.path | string | OTLP path. Default is /v1/traces |
config.logging | object | |
config.logging.filter | string | |
config.logging.fields | object | |
config.logging.fields.remove | []string | |
config.logging.fields.add | object | |
config.logging.level | string | |
config.logging.format | enum | Possible values: text, json, null. |
config.metrics | object | |
config.metrics.remove | []string | |
config.metrics.fields | object | |
config.metrics.fields.add | object | |
config.backend | object | |
config.backend.keepalives | object | |
config.backend.keepalives.enabled | boolean | |
config.backend.keepalives.time | string | |
config.backend.keepalives.interval | string | |
config.backend.keepalives.retries | integer | |
config.backend.connectTimeout | string | |
config.backend.poolIdleTimeout | string | The maximum duration to keep an idle connection alive. |
config.backend.poolMaxSize | integer | The maximum number of connections allowed in the pool, per hostname. If set, this will limit the total number of connections kept alive to any given host. Note: excess connections will still be created, they will just not remain idle. If unset, there is no limit |
config.hbone | object | |
config.hbone.windowSize | integer | |
config.hbone.connectionWindowSize | integer | |
config.hbone.frameSize | integer | |
config.hbone.poolMaxStreamsPerConn | integer | |
config.hbone.poolUnusedReleaseTimeout | string | |