API Support in Managed Cloud Service Mesh
Overview
This reference lists the Istio and Google Cloud APIs supported by the managed
Cloud Service Mesh with TRAFFIC_DIRECTOR. Use this guide to verify your
configuration before enabling features.
- Release Channels: Refers to GKE release channels, with Stable as the highest and Rapid as the lowest.
- Unsupported: Not supported by the managed control plane. Unsupported fields are rejected or ignored during configuration translation and result in unsupported and undefined behavior.
- Limitations: Specific behavior to be aware of for the API field due to the implementation that may differ from the API definition.
DestinationRule (networking.istio.io/v1beta1)
The following sections describe the supported fields for DestinationRule
resources.
Root & Top-Level Fields
The following table lists the supported root and top-level fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
exportTo |
Stable | Array of strings | When workloadSelector is set, exportTo cannot be exported beyond the local namespace (. or current namespace only). |
host |
Stable | String | Must be a valid DNS name, FQDN, or wildcard domain prefix. Empty domain names are not allowed. |
workloadSelector.matchLabels |
Stable | Key-value map | Wildcards (*) are not allowed in label keys or values. Limits applicability to client workloads in the local namespace. |
Load Balancer Settings (trafficPolicy.loadBalancer)
The following table lists the field-level support for trafficPolicy.loadBalancer.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
consistentHash.httpCookie.name |
Stable | String | Required when httpCookie is configured. |
consistentHash.httpCookie.path |
Stable | String | |
consistentHash.httpCookie.ttl |
Stable | Duration | |
consistentHash.httpHeaderName |
Stable | String | Only one consistentHash key strategy can be specified. |
consistentHash.httpQueryParameterName |
Stable | String | Only one consistentHash key strategy can be specified. |
consistentHash.maglev.tableSize |
Stable | Integer | |
consistentHash.minimumRingSize |
Stable | Integer | Deprecated. Use ringHash.minimumRingSize instead. Cannot be combined with ringHash or maglev. |
consistentHash.ringHash.minimumRingSize |
Stable | Integer | |
consistentHash.useSourceIp |
Stable | Boolean | Only one consistentHash key strategy can be specified. |
localityLbSetting.distribute.from |
Unsupported | String | |
localityLbSetting.distribute.to |
Unsupported | Key-value map | |
localityLbSetting.enabled |
Stable | Boolean | |
localityLbSetting.failover.from |
Stable | String | Requires outlierDetection to be configured on the traffic policy and it is only allowed syntactically to trigger WATERFALL_BY_ZONE. Specific routing paths are ignored. |
localityLbSetting.failover.to |
Stable | String | Requires outlierDetection to be configured on the traffic policy and it is only allowed syntactically to trigger WATERFALL_BY_ZONE. Specific routing paths are ignored. |
localityLbSetting.failoverPriority |
Unsupported | Array of strings | |
simple |
Stable | String (ROUND_ROBIN, LEAST_CONN, RANDOM, PASSTHROUGH, LEAST_REQUEST) |
LEAST_CONN is not supported. |
warmupDurationSecs |
Unsupported | String |
Connection Pool Settings (trafficPolicy.connectionPool)
The following table lists the field-level support for
trafficPolicy.connectionPool.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
http.h2UpgradePolicy |
Stable | String (DEFAULT, DO_NOT_UPGRADE, UPGRADE) |
Cannot be set to UPGRADE when useClientProtocol is true. |
http.http1MaxPendingRequests |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.http2MaxRequests |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.idleTimeout |
Stable | Duration | |
http.maxRequestsPerConnection |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.maxRetries |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.useClientProtocol |
Stable | Boolean | Cannot be true when h2UpgradePolicy is UPGRADE. |
tcp.connectTimeout |
Stable | Duration | |
tcp.maxConnectionDuration |
Stable | Duration | Only applied to HTTP/HTTP2/gRPC services; ignored for TCP byte-stream services. |
tcp.maxConnections |
Stable | Integer | Must be a non-negative integer (>= 0). |
tcp.tcpKeepalive.interval |
Stable | Duration | |
tcp.tcpKeepalive.probes |
Stable | Integer | |
tcp.tcpKeepalive.time |
Stable | Duration |
Outlier Detection (trafficPolicy.outlierDetection)
The following table lists the field-level support for
trafficPolicy.outlierDetection.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
baseEjectionTime |
Stable | Duration | |
consecutive5xxErrors |
Stable | Integer | |
consecutiveErrors |
Unsupported | Integer | |
consecutiveGatewayErrors |
Stable | Integer | |
consecutiveLocalOriginFailures |
Stable | Integer | |
interval |
Stable | Duration | |
maxEjectionPercent |
Stable | Integer | |
minHealthPercent |
Stable | Integer | |
splitExternalLocalOriginErrors |
Stable | Boolean |
TLS Settings (trafficPolicy.tls)
The following table lists the field-level support for trafficPolicy.tls.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
caCertificates |
Stable | String | |
clientCertificate |
Stable | String | Required when mode is MUTUAL. |
credentialName |
Unsupported | String | |
insecureSkipVerify |
Stable | Boolean | When true, caCertificates and subjectAltNames must be empty. |
mode |
Stable | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
MUTUAL mode requires clientCertificate and privateKey. |
privateKey |
Stable | String | Required when mode is MUTUAL. |
sni |
Stable | String | |
subjectAltNames |
Stable | Array of strings |
Tunnel Settings (trafficPolicy.tunnel)
The following table lists the field-level support for trafficPolicy.tunnel.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
tunnel.protocol |
Unsupported | String (CONNECT, POST) |
|
tunnel.targetHost |
Unsupported | String | |
tunnel.targetPort |
Unsupported | Integer |
Port & Load Balancer Settings (trafficPolicy.portLevelSettings.loadBalancer)
The following table lists the field-level support for
trafficPolicy.portLevelSettings.loadBalancer.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
loadBalancer.consistentHash.httpCookie.name |
Stable | String | Required when httpCookie is configured. |
loadBalancer.consistentHash.httpCookie.path |
Stable | String | |
loadBalancer.consistentHash.httpCookie.ttl |
Stable | Duration | |
loadBalancer.consistentHash.httpHeaderName |
Stable | String | Only one consistentHash key strategy can be specified. |
loadBalancer.consistentHash.httpQueryParameterName |
Stable | String | Only one consistentHash key strategy can be specified. |
loadBalancer.consistentHash.maglev.tableSize |
Stable | Integer | |
loadBalancer.consistentHash.minimumRingSize |
Stable | Integer | Deprecated. Use ringHash.minimumRingSize instead. Cannot be combined with ringHash or maglev. |
loadBalancer.consistentHash.ringHash.minimumRingSize |
Stable | Integer | |
loadBalancer.consistentHash.useSourceIp |
Stable | Boolean | Only one consistentHash key strategy can be specified. |
loadBalancer.localityLbSetting.distribute.from |
Unsupported | String | |
loadBalancer.localityLbSetting.distribute.to |
Unsupported | Key-value map | |
loadBalancer.localityLbSetting.enabled |
Unsupported | Boolean | |
loadBalancer.localityLbSetting.failover.from |
Unsupported | String | |
loadBalancer.localityLbSetting.failover.to |
Unsupported | String | |
loadBalancer.localityLbSetting.failoverPriority |
Unsupported | Array of strings | |
loadBalancer.simple |
Stable | String (ROUND_ROBIN, LEAST_CONN, RANDOM, PASSTHROUGH, LEAST_REQUEST) |
LEAST_CONN is not supported. |
loadBalancer.warmupDurationSecs |
Unsupported | String | |
port.number |
Stable | Integer | Required. Specifies the port number to which these traffic policies apply. |
Connection Pool Settings (trafficPolicy.portLevelSettings.connectionPool)
The following table lists the field-level support for
trafficPolicy.portLevelSettings.connectionPool.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
http.h2UpgradePolicy |
Stable | String (DEFAULT, DO_NOT_UPGRADE, UPGRADE) |
Cannot be set to UPGRADE when useClientProtocol is true. |
http.http1MaxPendingRequests |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.http2MaxRequests |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.idleTimeout |
Stable | Duration | |
http.maxRequestsPerConnection |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.maxRetries |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.useClientProtocol |
Stable | Boolean | Cannot be true when h2UpgradePolicy is UPGRADE. |
tcp.connectTimeout |
Stable | Duration | |
tcp.maxConnectionDuration |
Stable | Duration | Only applied to HTTP/HTTP2/gRPC services; ignored for TCP byte-stream services. |
tcp.maxConnections |
Stable | Integer | Must be a non-negative integer (>= 0). |
tcp.tcpKeepalive.interval |
Stable | Duration | |
tcp.tcpKeepalive.probes |
Stable | Integer | |
tcp.tcpKeepalive.time |
Stable | Duration |
Outlier Detection Settings (trafficPolicy.portLevelSettings.outlierDetection)
The following table lists the field-level support for
trafficPolicy.portLevelSettings.outlierDetection.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
baseEjectionTime |
Unsupported | Duration | |
consecutive5xxErrors |
Unsupported | Integer | |
consecutiveErrors |
Unsupported | Integer | |
consecutiveGatewayErrors |
Unsupported | Integer | |
consecutiveLocalOriginFailures |
Unsupported | Integer | |
interval |
Unsupported | Duration | |
maxEjectionPercent |
Unsupported | Integer | |
minHealthPercent |
Unsupported | Integer | |
splitExternalLocalOriginErrors |
Unsupported | Boolean |
TLS Settings (trafficPolicy.portLevelSettings.tls)
The following table lists the field-level support for
trafficPolicy.portLevelSettings.tls.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
tls.caCertificates |
Stable | String | |
tls.clientCertificate |
Stable | String | Required when mode is MUTUAL. |
tls.credentialName |
Unsupported | String | |
tls.insecureSkipVerify |
Stable | Boolean | When true, caCertificates and subjectAltNames must be empty. |
tls.mode |
Stable | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
MUTUAL mode requires clientCertificate and privateKey. |
tls.privateKey |
Stable | String | Required when mode is MUTUAL. |
tls.sni |
Stable | String | |
tls.subjectAltNames |
Stable | Array of strings |
Subset Root & Label Settings (subsets)
The following table lists the field-level support for subsets.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
labels |
Stable | Key-value map | Must conform to Kubernetes label syntax rules to select target endpoints. |
name |
Stable | String | Required. Must be a valid DNS 1123 label. |
Subset Load Balancer Settings (subsets.trafficPolicy.loadBalancer)
The following table lists the field-level support for
subsets.trafficPolicy.loadBalancer.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
consistentHash.httpCookie.name |
Stable | String | Required when httpCookie is configured. |
consistentHash.httpCookie.path |
Stable | String | |
consistentHash.httpCookie.ttl |
Stable | Duration | |
consistentHash.httpHeaderName |
Stable | String | Only one consistentHash key strategy can be specified. |
consistentHash.httpQueryParameterName |
Stable | String | Only one consistentHash key strategy can be specified. |
consistentHash.maglev.tableSize |
Stable | Integer | |
consistentHash.minimumRingSize |
Stable | Integer | Deprecated. Use ringHash.minimumRingSize instead. Cannot be combined with ringHash or maglev. |
consistentHash.ringHash.minimumRingSize |
Stable | Integer | |
consistentHash.useSourceIp |
Stable | Boolean | Only one consistentHash key strategy can be specified. |
localityLbSetting.distribute.from |
Unsupported | String | |
localityLbSetting.distribute.to |
Unsupported | Key-value map | |
localityLbSetting.enabled |
Unsupported | Boolean | |
localityLbSetting.failover.from |
Unsupported | String | |
localityLbSetting.failover.to |
Unsupported | String | |
localityLbSetting.failoverPriority |
Unsupported | Array of strings | |
simple |
Stable | String (ROUND_ROBIN, LEAST_CONN, RANDOM, PASSTHROUGH, LEAST_REQUEST) |
LEAST_CONN is not supported. |
warmupDurationSecs |
Unsupported | String |
Subset Connection Pool Settings (subsets.trafficPolicy.connectionPool)
The following table lists the field-level support for
subsets.trafficPolicy.connectionPool.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
http.h2UpgradePolicy |
Stable | String (DEFAULT, DO_NOT_UPGRADE, UPGRADE) |
Cannot be set to UPGRADE when useClientProtocol is true. |
http.http1MaxPendingRequests |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.http2MaxRequests |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.idleTimeout |
Stable | Duration | |
http.maxRequestsPerConnection |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.maxRetries |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.useClientProtocol |
Stable | Boolean | Cannot be true when h2UpgradePolicy is UPGRADE. |
tcp.connectTimeout |
Stable | Duration | |
tcp.maxConnectionDuration |
Stable | Duration | Only applied to HTTP/HTTP2/gRPC services; ignored for TCP byte-stream services. |
tcp.maxConnections |
Stable | Integer | Must be a non-negative integer (>= 0). |
tcp.tcpKeepalive.interval |
Stable | Duration | |
tcp.tcpKeepalive.probes |
Stable | Integer | |
tcp.tcpKeepalive.time |
Stable | Duration |
Subset Outlier Detection Settings (subsets.trafficPolicy.outlierDetection)
The following table lists the field-level support for
subsets.trafficPolicy.outlierDetection.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
baseEjectionTime |
Unsupported | Duration | |
consecutive5xxErrors |
Unsupported | Integer | |
consecutiveErrors |
Unsupported | Integer | |
consecutiveGatewayErrors |
Unsupported | Integer | |
consecutiveLocalOriginFailures |
Unsupported | Integer | |
interval |
Unsupported | Duration | |
maxEjectionPercent |
Unsupported | Integer | |
minHealthPercent |
Unsupported | Integer | |
splitExternalLocalOriginErrors |
Unsupported | Boolean |
Subset TLS & Tunnel Settings (subsets.trafficPolicy.tls, tunnel)
The following table lists the field-level support for subsets.trafficPolicy.tls
and tunnel.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
tls.caCertificates |
Stable | String | |
tls.clientCertificate |
Stable | String | Required when mode is MUTUAL. |
tls.credentialName |
Unsupported | String | |
tls.insecureSkipVerify |
Stable | Boolean | When true, caCertificates and subjectAltNames must be empty. |
tls.mode |
Stable | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
MUTUAL mode requires clientCertificate and privateKey. |
tls.privateKey |
Stable | String | Required when mode is MUTUAL. |
tls.sni |
Stable | String | |
tls.subjectAltNames |
Stable | Array of strings | |
tunnel.protocol |
Unsupported | String (CONNECT, POST) |
|
tunnel.targetHost |
Unsupported | String | |
tunnel.targetPort |
Unsupported | Integer |
Subset Port & Load Balancer Settings (subsets.trafficPolicy.portLevelSettings.loadBalancer)
The following table lists the field-level support for
subsets.trafficPolicy.portLevelSettings.loadBalancer.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
loadBalancer.consistentHash.httpCookie.name |
Stable | String | Required when httpCookie is configured. |
loadBalancer.consistentHash.httpCookie.path |
Stable | String | |
loadBalancer.consistentHash.httpCookie.ttl |
Stable | Duration | |
loadBalancer.consistentHash.httpHeaderName |
Stable | String | Only one consistentHash key strategy can be specified. |
loadBalancer.consistentHash.httpQueryParameterName |
Stable | String | Only one consistentHash key strategy can be specified. |
loadBalancer.consistentHash.maglev.tableSize |
Stable | Integer | |
loadBalancer.consistentHash.minimumRingSize |
Stable | Integer | Deprecated. Use ringHash.minimumRingSize instead. Cannot be combined with ringHash or maglev. |
loadBalancer.consistentHash.ringHash.minimumRingSize |
Stable | Integer | |
loadBalancer.consistentHash.useSourceIp |
Stable | Boolean | Only one consistentHash key strategy can be specified. |
loadBalancer.localityLbSetting.distribute.from |
Unsupported | String | |
loadBalancer.localityLbSetting.distribute.to |
Unsupported | Key-value map | |
loadBalancer.localityLbSetting.enabled |
Unsupported | Boolean | |
loadBalancer.localityLbSetting.failover.from |
Unsupported | String | |
loadBalancer.localityLbSetting.failover.to |
Unsupported | String | |
loadBalancer.localityLbSetting.failoverPriority |
Unsupported | Array of strings | |
loadBalancer.simple |
Stable | String (ROUND_ROBIN, LEAST_CONN, RANDOM, PASSTHROUGH, LEAST_REQUEST) |
LEAST_CONN is not supported. |
loadBalancer.warmupDurationSecs |
Unsupported | String | |
port.number |
Stable | Integer | Required. Specifies the port number to which these traffic policies apply. |
Subset Connection Pool Settings (subsets.trafficPolicy.portLevelSettings.connectionPool)
The following table lists the field-level support for
subsets.trafficPolicy.portLevelSettings.connectionPool.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
http.h2UpgradePolicy |
Stable | String (DEFAULT, DO_NOT_UPGRADE, UPGRADE) |
Cannot be set to UPGRADE when useClientProtocol is true. |
http.http1MaxPendingRequests |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.http2MaxRequests |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.idleTimeout |
Stable | Duration | |
http.maxRequestsPerConnection |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.maxRetries |
Stable | Integer | Must be a non-negative integer (>= 0). |
http.useClientProtocol |
Stable | Boolean | Cannot be true when h2UpgradePolicy is UPGRADE. |
tcp.connectTimeout |
Stable | Duration | |
tcp.maxConnectionDuration |
Stable | Duration | Only applied to HTTP/HTTP2/gRPC services; ignored for TCP byte-stream services. |
tcp.maxConnections |
Stable | Integer | Must be a non-negative integer (>= 0). |
tcp.tcpKeepalive.interval |
Stable | Duration | |
tcp.tcpKeepalive.probes |
Stable | Integer | |
tcp.tcpKeepalive.time |
Stable | Duration |
Subset Outlier Detection Settings (subsets.trafficPolicy.portLevelSettings.outlierDetection)
The following table lists the field-level support for
subsets.trafficPolicy.portLevelSettings.outlierDetection.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
baseEjectionTime |
Unsupported | Duration | |
consecutive5xxErrors |
Unsupported | Integer | |
consecutiveErrors |
Unsupported | Integer | |
consecutiveGatewayErrors |
Unsupported | Integer | |
consecutiveLocalOriginFailures |
Unsupported | Integer | |
interval |
Unsupported | Duration | |
maxEjectionPercent |
Unsupported | Integer | |
minHealthPercent |
Unsupported | Integer | |
splitExternalLocalOriginErrors |
Unsupported | Boolean |
Subset TLS Settings (subsets.trafficPolicy.portLevelSettings.tls)
The following table lists the field-level support for
subsets.trafficPolicy.portLevelSettings.tls.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
tls.caCertificates |
Stable | String | |
tls.clientCertificate |
Stable | String | Required when mode is MUTUAL. |
tls.credentialName |
Unsupported | String | |
tls.insecureSkipVerify |
Stable | Boolean | When true, caCertificates and subjectAltNames must be empty. |
tls.mode |
Stable | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
MUTUAL mode requires clientCertificate and privateKey. |
tls.privateKey |
Stable | String | Required when mode is MUTUAL. |
tls.sni |
Stable | String | |
tls.subjectAltNames |
Stable | Array of strings |
EnvoyFilter (networking.istio.io/v1alpha3)
The following sections describe the supported fields for EnvoyFilter
resources.
Root & Spec Fields
The following table lists the field-level support.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
configPatches |
Stable | Array of objects | |
priority |
Stable | Integer | |
workloadSelector |
Stable | Key-value map | |
workloadSelector.labels |
Stable | Key-value map |
Config Patches (configPatches)
The following table lists the field-level support for configPatches.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
applyTo |
Stable | String (HTTP_FILTER) |
Only HTTP_FILTER is supported. |
match.cluster.name |
Unsupported | String | |
match.cluster.portNumber |
Unsupported | Integer | |
match.cluster.service |
Unsupported | String | |
match.cluster.subset |
Unsupported | String | |
match.context |
Stable | String (ANY, SIDECAR_INBOUND, SIDECAR_OUTBOUND, GATEWAY) |
|
match.listener.filterChain.applicationProtocols |
Unsupported | String | |
match.listener.filterChain.destinationPort |
Unsupported | Integer | |
match.listener.filterChain.filter.name |
Stable | String | Must be envoy.filters.network.http_connection_manager when used with INSERT_BEFORE. |
match.listener.filterChain.filter.subFilter.name |
Stable | String | Must be envoy.filters.http.router when used with INSERT_BEFORE. |
match.listener.filterChain.name |
Unsupported | String | |
match.listener.filterChain.sni |
Unsupported | String | |
match.listener.filterChain.transportProtocol |
Unsupported | String | |
match.listener.listenerFilter |
Unsupported | String | |
match.listener.name |
Unsupported | String | |
match.listener.portName |
Unsupported | String | |
match.listener.portNumber |
Unsupported | Integer | |
match.proxy.metadata |
Unsupported | String | |
match.proxy.proxyVersion |
Unsupported | String | |
match.routeConfiguration.gateway |
Unsupported | String | |
match.routeConfiguration.name |
Unsupported | String | |
match.routeConfiguration.portName |
Unsupported | String | |
match.routeConfiguration.portNumber |
Unsupported | Integer | |
match.routeConfiguration.vhost.name |
Unsupported | String | |
match.routeConfiguration.vhost.route.action |
Unsupported | String (ANY, ROUTE, REDIRECT, DIRECT_RESPONSE) |
|
match.routeConfiguration.vhost.route.name |
Unsupported | String | |
patch.filterClass |
Unsupported | String (UNSPECIFIED, AUTHN, AUTHZ, STATS) |
|
patch.operation |
Stable | String (INSERT_FIRST, INSERT_BEFORE) |
Only INSERT_FIRST and INSERT_BEFORE are supported. |
patch.value |
Stable | String |
Gateway (networking.istio.io/v1beta1)
The following sections describe the supported fields for Gateway resources.
Root Fields
The following table lists the supported root fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
selector |
Stable | Key-value map | |
servers |
Stable | Array of objects |
Server Settings (servers)
The following table lists the field-level support for servers.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
bind |
Stable | String | IP address is supported. Unix Domain Sockets (UDS) are not supported. |
defaultEndpoint |
Unsupported | String | |
hosts |
Stable | Array of strings | At least one host is required. Supports <namespace>/<hostname> format. |
name |
Unsupported | String | |
port.name |
Stable | String | Required. Port names must be unique across all servers in the Gateway. |
port.number |
Stable | Integer | Required. Must be a valid port number between 1 and 65535. |
port.protocol |
Stable | String (HTTP, HTTPS, GRPC, GRPC-WEB, HTTP2, MONGO, MYSQL, REDIS, TCP, TLS) |
MONGO, MYSQL, and REDIS protocols are treated as plain TCP traffic; protocol-specific Envoy filters (such as mongo_proxy) are not supported. |
port.targetPort |
Unsupported | Integer |
Server TLS Settings (servers.tls)
The following table lists the field-level support for servers.tls.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
caCertificates |
Stable | String | Required for MUTUAL mode unless credentialName is set. |
cipherSuites |
Stable | Array of strings | Must be specified when minProtocolVersion is TLSV1_0 or TLSV1_1. |
credentialName |
Stable | String | Only supported when mode is SIMPLE or MUTUAL (the builtin:// prefix is only supported when mode is MUTUAL). |
httpsRedirect |
Stable | Boolean | Only supported when port.protocol is HTTP, HTTP2, or GRPC. |
maxProtocolVersion |
Stable | String (TLS_AUTO, TLSV1_0, TLSV1_1, TLSV1_2, TLSV1_3) |
|
minProtocolVersion |
Stable | String (TLS_AUTO, TLSV1_0, TLSV1_1, TLSV1_2, TLSV1_3) |
|
mode |
Stable | String (PASSTHROUGH, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
AUTO_PASSTHROUGH and OPTIONAL_MUTUAL are not supported. ISTIO_MUTUAL manages certificates automatically. |
privateKey |
Stable | String | Required for SIMPLE and MUTUAL modes unless credentialName is set. |
serverCertificate |
Stable | String | Required for SIMPLE and MUTUAL modes unless credentialName is set. |
subjectAltNames |
Stable | Array of strings | Maximum of 8 SAN entries per server (entries beyond 8 are truncated). Only supported when mode is MUTUAL or ISTIO_MUTUAL; only exact and prefix (*) matching are supported. |
verifyCertificateHash |
Unsupported | Array of strings | |
verifyCertificateSpki |
Unsupported | Array of strings |
ProxyConfig (networking.istio.io/v1beta1)
The ProxyConfig custom resource (CR) is not supported.
ServiceEntry (networking.istio.io/v1beta1)
The following sections describe the supported fields for ServiceEntry
resources.
Root & General Configuration
The following table lists the supported root and general configuration fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
addresses |
Stable | Array of strings | CIDR subnets are only supported with STATIC or NONE resolution. Required for TCP ports. |
exportTo |
Stable | Array of strings | |
hosts |
Stable | Array of strings | At least one host required. * alone not allowed. Multiple hosts require HTTP/HTTPS/TLS ports. |
location |
Stable | String (MESH_EXTERNAL, MESH_INTERNAL) |
MESH_INTERNAL is not supported. |
resolution |
Stable | String (NONE, STATIC, DNS, DNS_ROUND_ROBIN) |
DNS_ROUND_ROBIN is not supported. NONE requires empty endpoints; STATIC requires endpoints. |
subjectAltNames |
Unsupported | Array of strings | |
workloadSelector.labels |
Unsupported | Key-value map |
Port Settings (ports)
The following table lists the field-level support for ports.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
name |
Stable | String | Required. Port names must be unique across the ServiceEntry. |
number |
Stable | Integer | Required (1-65535). Port numbers must be unique across the ServiceEntry. |
protocol |
Stable | String (HTTP, HTTPS, GRPC, HTTP2, MONGO, TCP, TLS) |
|
targetPort |
Stable | Integer | Must be a valid port number (1-65535) if specified. |
Endpoint Settings (endpoints)
The following table lists the field-level support for endpoints.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
address |
Stable | String | Required. Must be a valid IP address for STATIC resolution or FQDN or IP address for DNS resolution. |
labels |
Stable | Key-value map | Must conform to Kubernetes label syntax rules. |
locality |
Unsupported | String | |
network |
Unsupported | String | |
ports |
Stable | Key-value map | Port names in map must match port names defined in spec.ports. |
serviceAccount |
Unsupported | String | |
weight |
Unsupported | Integer |
Sidecar (networking.istio.io/v1beta1)
The following sections describe the supported fields for Sidecar resources.
Root & General Configuration
The following table lists the supported root and general configuration fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
workloadSelector |
Stable | Object | Subject to Istio Sidecar resources scalability limits: maximum 150 total Sidecar resources per cluster and 20 with workloadSelector per cluster (Sidecar resources with workloadSelector count toward both limits). |
workloadSelector.labels |
Stable | Key-value map | Subject to Istio Sidecar resources scalability limits (maximum 20 Sidecar resources with workloadSelector per cluster, which also count toward the 150 total limit). |
Egress Listeners (egress)
The following table lists the field-level support for egress.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
bind |
Unsupported | String | |
captureMode |
Unsupported | String (DEFAULT, IPTABLES, NONE) |
|
hosts |
Stable | Array of strings | Only the first matching egress listener entry without a port specification is processed. If multiple egress listeners are declared in a single Sidecar resource, all listeners after the first are silently ignored. The ~ namespace qualifier (representing no namespace in Istio) is not supported. To match no hosts, explicitly set hosts: [] (empty list) within an egress listener entry. |
port.name |
Unsupported | String | |
port.number |
Unsupported | Integer | |
port.protocol |
Unsupported | String (HTTP, HTTPS, GRPC, HTTP2, MONGO, TCP, TLS) |
|
port.targetPort |
Unsupported | Integer |
Ingress Listeners: Port & Binding (ingress)
The following table lists the field-level support for ingress.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
bind |
Unsupported | String | |
captureMode |
Unsupported | String (DEFAULT, IPTABLES, NONE) |
|
defaultEndpoint |
Unsupported | String | |
port.name |
Unsupported | String | |
port.number |
Unsupported | Integer | |
port.protocol |
Unsupported | String (HTTP, HTTPS, GRPC, HTTP2, MONGO, TCP, TLS) |
|
port.targetPort |
Unsupported | Integer |
Ingress Listeners: TLS Settings (ingress.tls)
The following table lists the field-level support for ingress.tls.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
caCertificates |
Unsupported | String | |
cipherSuites |
Unsupported | Array of strings | |
credentialName |
Unsupported | String | |
httpsRedirect |
Unsupported | Boolean | |
maxProtocolVersion |
Unsupported | String (TLS_AUTO, TLSV1_0, TLSV1_1, TLSV1_2, TLSV1_3) |
|
minProtocolVersion |
Unsupported | String (TLS_AUTO, TLSV1_0, TLSV1_1, TLSV1_2, TLSV1_3) |
|
mode |
Unsupported | String (PASSTHROUGH, SIMPLE, MUTUAL, AUTO_PASSTHROUGH, ISTIO_MUTUAL, OPTIONAL_MUTUAL) |
|
privateKey |
Unsupported | String | |
serverCertificate |
Unsupported | String | |
subjectAltNames |
Unsupported | Array of strings | |
verifyCertificateHash |
Unsupported | Array of strings | |
verifyCertificateSpki |
Unsupported | Array of strings |
Outbound Traffic Policy (outboundTrafficPolicy)
The following table lists the field-level support for outboundTrafficPolicy.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
egressProxy.host |
Unsupported | String | |
egressProxy.port.number |
Unsupported | Integer | |
egressProxy.subset |
Unsupported | String | |
mode |
Stable | String (REGISTRY_ONLY, ALLOW_ANY) |
When omitted on a workload or namespace Sidecar, MeshConfig.outboundTrafficPolicy takes precedence over the root (istio-system) Sidecar. |
VirtualService (networking.istio.io/v1beta1)
The following sections describe the supported fields for VirtualService
resources.
Root & General Configuration
The following table lists the supported root and general configuration fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
exportTo |
Stable | Array of strings | |
gateways |
Stable | Array of strings | Defaults to mesh if omitted. Must match a Gateway name or mesh. Cannot bind to both mesh and other gateways simultaneously. |
hosts |
Stable | Array of strings | At least one host required unless configured as delegate. Wildcard * not allowed when bound to mesh. |
HTTP Route Settings (http)
The following table lists the field-level support for http.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
delegate.name |
Stable | String | Required for delegate route. Must be a valid DNS label. |
delegate.namespace |
Stable | String | |
name |
Stable | String | |
timeout |
Stable | Duration |
HTTP Match Conditions (http.match)
The following table lists the field-level support for http.match.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
authority.exact |
Stable | String | |
authority.prefix |
Stable | String | |
authority.regex |
Stable | String | Must be valid RE2 regular expression (< 1024 characters). |
gateways |
Stable | Array of strings | Defaults to mesh if omitted. Must match a Gateway name or mesh. Cannot bind to both mesh and other gateways simultaneously. |
headers.exact |
Stable | Key-value map | |
headers.prefix |
Stable | Key-value map | |
headers.regex |
Stable | Key-value map | Must be valid RE2 regular expression (< 1024 characters). |
ignoreUriCase |
Stable | Boolean | |
method.exact |
Stable | String | |
method.prefix |
Stable | String | |
method.regex |
Stable | String | Must be valid RE2 regular expression (< 1024 characters). |
name |
Stable | String | |
port |
Stable | Integer | Must be a valid port number (1-65535). |
queryParams.exact |
Stable | Key-value map | |
queryParams.prefix |
Stable | Key-value map | |
queryParams.regex |
Stable | Key-value map | Must be valid RE2 regular expression (< 1024 characters). |
scheme.exact |
Stable | String | |
scheme.prefix |
Stable | String | |
scheme.regex |
Stable | String | Must be valid RE2 regular expression (< 1024 characters). |
sourceLabels |
Stable | Key-value map | Must conform to Kubernetes label syntax rules. |
sourceNamespace |
Stable | String | Must be a valid DNS label. |
statPrefix |
Unsupported | String | |
uri.exact |
Stable | String | |
uri.prefix |
Stable | String | |
uri.regex |
Stable | String | Must be valid RE2 regular expression (< 1024 characters). |
withoutHeaders.exact |
Stable | Key-value map | |
withoutHeaders.prefix |
Stable | Key-value map | |
withoutHeaders.regex |
Stable | Key-value map | Must be valid RE2 regular expression (< 1024 characters). |
HTTP Route Destinations (http.route)
The following table lists the field-level support for http.route.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
destination.host |
Stable | String | Required. Must be a valid service host. |
destination.port.number |
Stable | Integer | Must be a valid port number (1-65535). |
destination.subset |
Stable | String | |
headers.request.add |
Stable | Key-value map | Internal pseudo-headers starting with : (except :authority) cannot be modified. |
headers.request.remove |
Stable | Array of strings | Host and internal pseudo-headers starting with : cannot be modified. |
headers.request.set |
Stable | Key-value map | Internal pseudo-headers starting with : (except :authority) cannot be modified. |
headers.response.add |
Stable | Key-value map | Host and internal pseudo-headers starting with : cannot be modified. |
headers.response.remove |
Stable | Array of strings | Host and internal pseudo-headers starting with : cannot be modified. |
headers.response.set |
Stable | Key-value map | Host and internal pseudo-headers starting with : cannot be modified. |
weight |
Stable | Integer | Non-negative integer. Total weight must be > 0 when multiple destinations are specified. |
HTTP Redirect & Direct Response (http.redirect, directResponse)
The following table lists the field-level support for http.redirect and
directResponse.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
http.directResponse.body.bytes |
Stable | String | Maximum response body size is 1 MB. |
http.directResponse.body.string |
Stable | String | Maximum response body size is 1 MB. |
http.directResponse.status |
Stable | Integer | Status code must be between 200 and 600. |
http.redirect.authority |
Stable | String | |
http.redirect.derivePort |
Stable | String (FROM_PROTOCOL_DEFAULT, FROM_REQUEST_PORT) |
|
http.redirect.port |
Stable | Integer | Must be a valid port number (1-65535). |
http.redirect.redirectCode |
Stable | Integer | Redirect code must be 3xx (300-399). |
http.redirect.scheme |
Stable | String | Must be http or https. |
http.redirect.uri |
Stable | String |
HTTP Rewrite & CORS Policy (http.rewrite, corsPolicy)
The following table lists the field-level support for http.rewrite and
corsPolicy.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
http.corsPolicy.allowCredentials |
Stable | Boolean | |
http.corsPolicy.allowHeaders |
Stable | Array of strings | |
http.corsPolicy.allowMethods |
Stable | Array of strings | Supported methods: GET, HEAD, POST, PUT, PATCH, DELETE, CONNECT, OPTIONS, TRACE. |
http.corsPolicy.allowOrigin |
Unsupported | Array of strings | |
http.corsPolicy.allowOrigins.exact |
Stable | String | |
http.corsPolicy.allowOrigins.prefix |
Stable | String | |
http.corsPolicy.allowOrigins.regex |
Stable | String | Must be valid RE2 regular expression (< 1024 characters). |
http.corsPolicy.exposeHeaders |
Stable | Array of strings | |
http.corsPolicy.maxAge |
Stable | Duration | |
http.rewrite.authority |
Stable | String | |
http.rewrite.uri |
Stable | String | Cannot be set simultaneously with uriRegexRewrite. |
http.rewrite.uriRegexRewrite.match |
Stable | String | Cannot be set simultaneously with uri rewrite. |
http.rewrite.uriRegexRewrite.rewrite |
Stable | String | Cannot be set simultaneously with uri rewrite. |
HTTP Retries & Header Operations (http.retries, headers)
The following table lists the field-level support for http.retries and headers.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
http.headers.request.add |
Stable | Key-value map | Internal pseudo-headers starting with : (except :authority) cannot be modified. |
http.headers.request.remove |
Stable | Array of strings | Host and internal pseudo-headers starting with : cannot be modified. |
http.headers.request.set |
Stable | Key-value map | Internal pseudo-headers starting with : (except :authority) cannot be modified. |
http.headers.response.add |
Stable | Key-value map | Host and internal pseudo-headers starting with : cannot be modified. |
http.headers.response.remove |
Stable | Array of strings | Host and internal pseudo-headers starting with : cannot be modified. |
http.headers.response.set |
Stable | Key-value map | Host and internal pseudo-headers starting with : cannot be modified. |
http.retries.attempts |
Stable | Integer | Non-negative integer. Must be > 0 if retryOn or perTryTimeout is configured. |
http.retries.perTryTimeout |
Stable | Duration | |
http.retries.retryOn |
Stable | String | |
http.retries.retryRemoteLocalities |
Stable | Boolean |
HTTP Fault Injection (http.fault)
The following table lists the field-level support for http.fault.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
abort.grpcStatus |
Unsupported | String | |
abort.http2Error |
Unsupported | String | |
abort.httpStatus |
Stable | Integer | Abort HTTP status code must be between 200 and 599. |
abort.percentage.value |
Stable | Double | Percentage must be in range 0-100. |
delay.exponentialDelay |
Unsupported | Duration | |
delay.fixedDelay |
Stable | Duration | Fixed delay duration is supported. Exponential delay is not supported. |
delay.percent |
Unsupported | Integer | Integer percent value is deprecated. Use the double percentage field instead. |
delay.percentage.value |
Stable | Double | Percentage must be in range 0-100. |
HTTP Traffic Mirroring (http.mirror, mirrors)
The following table lists the field-level support for http.mirror and mirrors.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
http.mirror.host |
Stable | String | Single mirror destination. Cannot be combined with mirrors. |
http.mirror.port.number |
Stable | Integer | |
http.mirror.subset |
Stable | String | |
http.mirrorPercent |
Unsupported | Integer | |
http.mirrorPercentage.value |
Stable | Double | Percentage must be in range 0-100. |
http.mirrors.destination.host |
Unsupported | String | Only the singular http.mirror field is supported; multiple mirrors configured using http.mirrors are ignored. |
http.mirrors.destination.port.number |
Unsupported | Integer | Only the singular http.mirror field is supported; multiple mirrors configured using http.mirrors are ignored. |
http.mirrors.destination.subset |
Unsupported | String | Only the singular http.mirror field is supported; multiple mirrors configured using http.mirrors are ignored. |
http.mirrors.percentage.value |
Unsupported | Double | Only the singular http.mirror field is supported; multiple mirrors configured using http.mirrors are ignored. |
TLS Routing (tls)
The following table lists the field-level support for tls.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
match.destinationSubnets |
Stable | Array of strings | Must be a valid CIDR IP subnet string. |
match.gateways |
Stable | Array of strings | |
match.port |
Stable | Integer | Must be a valid port number (1-65535). |
match.sniHosts |
Stable | Array of strings | At least one SNI host is required. Full wildcard (*) and partial wildcards (for example, *example.com) are not supported; only subdomain wildcards (for example, *.example.com) are allowed. |
match.sourceLabels |
Unsupported | Key-value map | |
match.sourceNamespace |
Unsupported | String | |
route.destination.host |
Stable | String | Required. Must be a valid service host. |
route.destination.port.number |
Stable | Integer | Must be a valid port number (1-65535). |
route.destination.subset |
Stable | String | |
route.weight |
Stable | Integer | Non-negative integer. Total weight must be > 0 when multiple destinations are specified. |
TCP Routing (tcp)
The following table lists the field-level support for tcp.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
match.destinationSubnets |
Stable | Array of strings | Must be a valid CIDR IP subnet string. |
match.gateways |
Stable | Array of strings | |
match.port |
Stable | Integer | Must be a valid port number (1-65535). |
match.sourceLabels |
Unsupported | Key-value map | |
match.sourceNamespace |
Unsupported | String | |
match.sourceSubnet |
Unsupported | String | |
route.destination.host |
Stable | String | Required. Must be a valid service host. |
route.destination.port.number |
Stable | Integer | Must be a valid port number (1-65535). |
route.destination.subset |
Stable | String | |
route.weight |
Stable | Integer | Non-negative integer. Total weight must be > 0 when multiple destinations are specified. |
WorkloadEntry (networking.istio.io/v1beta1)
The WorkloadEntry custom resource (CR) is not supported.
WorkloadGroup (networking.istio.io/v1beta1)
The WorkloadGroup custom resource (CR) is not supported.
AuthorizationPolicy (security.istio.io/v1beta1)
The following sections describe the supported fields for AuthorizationPolicy
resources.
Root & Spec Fields
The following table lists the field-level support.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
action |
Stable | String (ALLOW, DENY, AUDIT, CUSTOM) |
|
provider.name |
Stable | String | Only supported when action: CUSTOM. |
selector.matchLabels |
Stable | Key-value map | If omitted, applies to all workloads in the namespace. |
From Sources (rules.from.source)
The following table lists the field-level support for rules.from.source.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
ipBlocks |
Stable | Array of strings | |
notIpBlocks |
Stable | Array of strings | |
namespaces |
Stable | Array of strings | |
notNamespaces |
Stable | Array of strings | |
principals |
Stable | Array of strings | |
notPrincipals |
Stable | Array of strings | |
remoteIpBlocks |
Stable | Array of strings | |
notRemoteIpBlocks |
Stable | Array of strings | |
requestPrincipals |
Stable | Array of strings | |
notRequestPrincipals |
Stable | Array of strings |
To Operations (rules.to.operation)
The following table lists the field-level support for rules.to.operation.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
hosts |
Stable | Array of strings | |
methods |
Stable | Array of strings | |
notHosts |
Stable | Array of strings | |
notMethods |
Stable | Array of strings | |
notPaths |
Stable | Array of strings | Only prefix and suffix wildcard matching is supported. |
notPorts |
Stable | Array of objects | Must be valid port numbers (1-65535). |
paths |
Stable | Array of strings | Only prefix and suffix wildcard matching is supported. |
ports |
Stable | Array of objects | Must be valid port numbers (1-65535). |
When Conditions (rules.when)
The following table lists the field-level support for rules.when.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
key |
Stable | String | Supported keys: request.headers, request.auth.claims, IPs, ports, principals. When action is CUSTOM, source.namespace, source.principal, and request.auth.* keys are not supported. destination.namespace/labels unsupported. |
notValues |
Stable | Array of strings | At least one of values or notValues must be specified. |
values |
Stable | Array of strings | At least one of values or notValues must be specified. |
PeerAuthentication (security.istio.io/v1beta1)
The following sections describe the supported fields for PeerAuthentication
resources.
Root & Spec Fields
The following table lists the field-level support.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
mtls.mode |
Stable | String (UNSET, DISABLE, PERMISSIVE, STRICT) |
DISABLE mode is not supported. |
portLevelMtls.mode |
Stable | String (UNSET, DISABLE, PERMISSIVE, STRICT) |
DISABLE mode is not supported. |
selector.matchLabels |
Stable | Key-value map | Policy in root namespace is not allowed to have label selector. |
RequestAuthentication (security.istio.io/v1beta1)
The following sections describe the supported fields for RequestAuthentication
resources.
Root Fields
The following table lists the supported root fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
selector.matchLabels |
Stable | Key-value map | If omitted, applies to all workloads in the namespace. Wildcards (*) not allowed. |
JWT Rules (jwtRules)
The following table lists the field-level support for jwtRules.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
audiences |
Stable | Array of strings | |
forwardOriginalToken |
Stable | Boolean | |
fromHeaders.name |
Stable | String | |
fromHeaders.prefix |
Stable | String | |
fromParams |
Stable | Array of strings | |
issuer |
Stable | String | |
jwks |
Stable | String | Only one of jwksUri and jwks should be used. |
jwksUri |
Stable | String | Only one of jwksUri and jwks should be used. |
outputClaimToHeaders.claim |
Unsupported | String | |
outputClaimToHeaders.header |
Unsupported | String | |
outputPayloadToHeader |
Stable | String |
Telemetry (telemetry.istio.io/v1alpha1)
The following sections describe the supported fields for Telemetry resources.
Root & General Configuration
The following table lists the supported root and general configuration fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
selector.matchLabels |
Rapid | Key-value map | In Regular and Stable channels, only mesh-wide telemetry in root namespace is supported. |
Access Logging (accessLogging)
The following table lists the field-level support for accessLogging.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
disabled |
Stable | Boolean | Disables access logging for the provider. |
filter.expression |
Unsupported | String | |
match.mode |
Unsupported | String (CLIENT_AND_SERVER, CLIENT, SERVER) |
|
providers.name |
Stable | String | Only Envoy or Stackdriver. |
Tracing (tracing)
The following table lists the field-level support for tracing.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
customTags.environment.defaultValue |
Unsupported | String | |
customTags.environment.name |
Unsupported | String | |
customTags.header.defaultValue |
Unsupported | String | |
customTags.header.name |
Unsupported | String | |
customTags.literal.value |
Unsupported | String | |
disableSpanReporting |
Stable | Boolean | Disables span reporting to Cloud Trace. |
match.mode |
Unsupported | String (CLIENT_AND_SERVER, CLIENT, SERVER) |
|
providers.name |
Stable | String | Only Stackdriver. |
randomSamplingPercentage |
Rapid | Double | Defaults to 0.0. Supported value range: 0.0 to 100.0. |
useRequestIdForTraceSampling |
Unsupported | Boolean |
Metrics (metrics)
The following table lists the field-level support for metrics.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
overrides.disabled |
Unsupported | Boolean | |
overrides.match.customMatch |
Unsupported | Array of objects | |
overrides.match.customMetric |
Unsupported | String | |
overrides.match.metric |
Unsupported | String (ALL_METRICS, REQUEST_COUNT, REQUEST_DURATION, REQUEST_SIZE, RESPONSE_SIZE, TCP_OPENED_CONNECTIONS, TCP_CLOSED_CONNECTIONS, TCP_SENT_BYTES, TCP_RECEIVED_BYTES, GRPC_REQUEST_MESSAGES, GRPC_RESPONSE_MESSAGES) |
|
overrides.match.mode |
Unsupported | String (CLIENT_AND_SERVER, CLIENT, SERVER) |
|
overrides.tagOverrides.operation |
Unsupported | String (UPSERT, REMOVE) |
|
overrides.tagOverrides.value |
Unsupported | String | |
providers.name |
Unsupported | String | |
reportingInterval |
Unsupported | Duration |
WasmPlugin (extensions.istio.io/v1alpha1)
The WasmPlugin custom resource (CR) is not supported.
MeshConfig (mesh.istio.io/v1alpha1)
The following sections describe the supported fields for MeshConfig resources.
Root & General Configuration
The following table lists the supported root and general configuration fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
accessLogEncoding |
Rapid | String (TEXT, JSON) |
Supported encoding formats: TEXT or JSON. |
accessLogFile |
Stable | String | Destination path for Envoy access logging (for example, /dev/stdout). |
accessLogFormat |
Rapid | String | |
connectTimeout |
Unsupported | Duration | |
defaultDestinationRuleExportTo |
Stable | Array of strings | Default export scope for DestinationRules (defaults to *). |
defaultHttpRetryPolicy.attempts |
Unsupported | Integer | |
defaultHttpRetryPolicy.perTryTimeout |
Unsupported | Duration | |
defaultHttpRetryPolicy.retryOn |
Unsupported | String | |
defaultHttpRetryPolicy.retryRemoteLocalities |
Unsupported | String | |
defaultServiceExportTo |
Stable | Array of strings | Default export scope for Services (defaults to *). |
defaultVirtualServiceExportTo |
Stable | Array of strings | Default export scope for VirtualServices (defaults to *). |
disableEnvoyListenerLog |
Unsupported | String | |
dnsRefreshRate |
Unsupported | String | |
enableAutoMtls |
Unsupported | Boolean | |
enableEnvoyAccessLogService |
Unsupported | String | |
enablePrometheusMerge |
Unsupported | String | |
enableTracing |
Unsupported | String | |
h2UpgradePolicy |
Unsupported | String (DO_NOT_UPGRADE, UPGRADE) |
|
inboundClusterStatName |
Unsupported | String | |
inboundTrafficPolicy.mode |
Unsupported | String (PASSTHROUGH, LOCALHOST) |
|
ingressClass |
Unsupported | String | |
ingressControllerMode |
Unsupported | String (UNSPECIFIED, OFF, DEFAULT, STRICT) |
|
ingressSelector |
Unsupported | Key-value map | |
ingressService |
Unsupported | String | |
outboundClusterStatName |
Unsupported | String | |
pathNormalization.normalization |
Unsupported | String | |
pathNormalization.normalizationType |
Unsupported | String (DEFAULT, NONE, BASE, MERGE_SLASHES, DECODE_AND_MERGE_SLASHES) |
|
protocolDetectionTimeout |
Unsupported | Duration | |
proxyHttpPort |
Unsupported | Integer | |
proxyInboundListenPort |
Unsupported | Integer | |
proxyListenPort |
Unsupported | Integer | |
rootNamespace |
Unsupported | String | |
trustDomain |
Unsupported | String | |
trustDomainAliases |
Unsupported | Array of strings | |
verifyCertificateAtClient |
Unsupported | String |
CA & Certificate Settings (ca, caCertificates, certificates)
The following table lists the field-level support for ca, caCertificates, and
certificates.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
ca.address |
Unsupported | String | |
ca.istiodSide |
Unsupported | Boolean | |
ca.requestTimeout |
Unsupported | Duration | |
ca.tlsSettings.caCertificates |
Unsupported | String | |
ca.tlsSettings.clientCertificate |
Unsupported | String | |
ca.tlsSettings.clientCertificates |
Unsupported | String | |
ca.tlsSettings.credentialName |
Unsupported | String | |
ca.tlsSettings.insecureSkipVerify |
Unsupported | Boolean | |
ca.tlsSettings.mode |
Unsupported | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
|
ca.tlsSettings.privateKey |
Unsupported | String | |
ca.tlsSettings.sni |
Unsupported | String | |
ca.tlsSettings.subjectAltNames |
Unsupported | Array of strings | |
caCertificates.certSigners |
Unsupported | String | |
caCertificates.pem |
Unsupported | String | |
caCertificates.spiffeBundleUrl |
Unsupported | String | |
caCertificates.trustDomains |
Unsupported | String | |
certificates.dnsNames |
Unsupported | Array of strings | |
certificates.secretName |
Unsupported | String |
Config Sources (configSources)
The following table lists the field-level support for configSources.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
address |
Unsupported | String | |
subscribedResources |
Unsupported | Array of strings (SERVICE_REGISTRY) |
|
tlsSettings.caCertificates |
Unsupported | String | |
tlsSettings.clientCertificate |
Unsupported | String | |
tlsSettings.credentialName |
Unsupported | String | |
tlsSettings.insecureSkipVerify |
Unsupported | Boolean | |
tlsSettings.mode |
Unsupported | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
|
tlsSettings.privateKey |
Unsupported | String | |
tlsSettings.sni |
Unsupported | String | |
tlsSettings.subjectAltNames |
Unsupported | Array of strings |
Default Providers (defaultProviders)
The following table lists the field-level support for defaultProviders.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
accessLogging |
Stable | Array of strings (envoy) |
|
metrics |
Unsupported | Array of strings | |
tracing |
Stable | Array of strings (stackdriver) |
Discovery Selectors (discoverySelectors)
The following table lists the field-level support for discoverySelectors.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
matchExpressions.key |
Stable | String | |
matchExpressions.operator |
Stable | String | |
matchExpressions.values |
Stable | Array of strings | |
matchLabels |
Stable | Key-value map |
External Authorization HTTP (extensionProviders.envoyExtAuthzHttp)
The following table lists the field-level support for
extensionProviders.envoyExtAuthzHttp.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
failOpen |
Stable | Boolean | |
headersToDownstreamOnAllow |
Stable | String | Wildcard * alone not supported. |
headersToDownstreamOnDeny |
Stable | String | Wildcard * alone not supported. |
headersToUpstreamOnAllow |
Stable | String | Wildcard * alone not supported. |
includeAdditionalHeadersInCheck |
Unsupported | Key-value map | |
includeHeadersInCheck |
Unsupported | String | |
includeRequestBodyInCheck.allowPartialMessage |
Unsupported | Boolean | |
includeRequestBodyInCheck.maxRequestBytes |
Unsupported | Integer | |
includeRequestBodyInCheck.packAsBytes |
Unsupported | Boolean | |
includeRequestHeadersInCheck |
Stable | String | Wildcard * alone not supported. |
pathPrefix |
Stable | String | Must begin with / (for example, /check). |
port |
Stable | Integer | Required port number (1-65535). |
service |
Stable | String | Required. Must be a valid FQDN or <namespace>/<hostname>. |
statusOnError |
Stable | String | Must be a valid Envoy status code if configured. |
timeout |
Stable | Duration |
External Authorization gRPC (extensionProviders.envoyExtAuthzGrpc)
The following table lists the field-level support for
extensionProviders.envoyExtAuthzGrpc.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
failOpen |
Stable | Boolean | |
includeRequestBodyInCheck.allowPartialMessage |
Stable | Boolean | |
includeRequestBodyInCheck.maxRequestBytes |
Stable | Integer | |
includeRequestBodyInCheck.packAsBytes |
Stable | Boolean | |
port |
Stable | Integer | Required port number (1-65535). |
service |
Stable | String | Required. Must be a valid FQDN or <namespace>/<hostname>. |
statusOnError |
Stable | String | Must be a valid Envoy status code if configured. |
timeout |
Stable | Duration |
OpenTelemetry (extensionProviders.opentelemetry)
The following table lists the field-level support for
extensionProviders.opentelemetry.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
dynatraceSampler.clusterId |
Unsupported | Integer | |
dynatraceSampler.httpService.http.headers.name |
Unsupported | String | |
dynatraceSampler.httpService.http.headers.value |
Unsupported | String | |
dynatraceSampler.httpService.http.path |
Unsupported | String | |
dynatraceSampler.httpService.http.timeout |
Unsupported | Duration | |
dynatraceSampler.httpService.port |
Unsupported | Integer | |
dynatraceSampler.httpService.service |
Unsupported | String | |
dynatraceSampler.rootSpansPerMinute |
Unsupported | Integer | |
dynatraceSampler.tenant |
Unsupported | String | |
http.headers.name |
Unsupported | String | |
http.headers.value |
Unsupported | String | |
http.path |
Unsupported | String | |
http.timeout |
Unsupported | Duration | |
maxTagLength |
Unsupported | String | |
port |
Unsupported | Integer | |
resourceDetectors.dynatrace |
Unsupported | String | |
resourceDetectors.environment |
Unsupported | String | |
service |
Unsupported | String |
Zipkin & Lightstep (extensionProviders.zipkin, lightstep)
The following table lists the field-level support for extensionProviders.zipkin
and lightstep.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
lightstep.accessToken |
Unsupported | String | |
lightstep.maxTagLength |
Unsupported | String | |
lightstep.port |
Unsupported | Integer | |
lightstep.service |
Unsupported | String | |
zipkin.enable64bitTraceId |
Unsupported | Boolean | |
zipkin.maxTagLength |
Unsupported | String | |
zipkin.port |
Unsupported | Integer | |
zipkin.service |
Unsupported | String |
Datadog, Stackdriver, SkyWalking & OpenCensus (extensionProviders.datadog, stackdriver, skywalking, opencensus)
The following table lists the field-level support for extensionProviders.datadog,
stackdriver, skywalking, and opencensus.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
datadog.maxTagLength |
Unsupported | String | |
datadog.port |
Unsupported | Integer | |
datadog.service |
Unsupported | String | |
opencensus.context |
Unsupported | Array of strings (UNSPECIFIED, W3C_TRACE_CONTEXT, GRPC_BIN, CLOUD_TRACE_CONTEXT, B3) |
|
opencensus.maxTagLength |
Unsupported | String | |
opencensus.port |
Unsupported | Integer | |
opencensus.service |
Unsupported | String | |
skywalking.accessToken |
Unsupported | String | |
skywalking.port |
Unsupported | Integer | |
skywalking.service |
Unsupported | String | |
stackdriver.debug |
Unsupported | String | |
stackdriver.logging |
Unsupported | Boolean | |
stackdriver.logging.labels |
Unsupported | Key-value map | |
stackdriver.maxNumberOfAnnotations |
Unsupported | Key-value map | |
stackdriver.maxNumberOfAttributes |
Unsupported | String | |
stackdriver.maxNumberOfMessageEvents |
Unsupported | String | |
stackdriver.maxTagLength |
Unsupported | String |
Access Logging Settings (extensionProviders.envoyFileAccessLog, envoyHttpAls, envoyTcpAls, envoyOtelAls, prometheus)
The following table lists the field-level support for
extensionProviders.envoyFileAccessLog, envoyHttpAls, envoyTcpAls,
envoyOtelAls, and prometheus.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
envoyFileAccessLog.logFormat.labels |
Unsupported | Key-value map | |
envoyFileAccessLog.logFormat.text |
Unsupported | String | |
envoyFileAccessLog.path |
Unsupported | String | |
envoyHttpAls.additionalRequestHeadersToLog |
Unsupported | String | |
envoyHttpAls.additionalResponseHeadersToLog |
Unsupported | String | |
envoyHttpAls.additionalResponseTrailersToLog |
Unsupported | String | |
envoyHttpAls.filterStateObjectsToLog |
Unsupported | String | |
envoyHttpAls.logName |
Unsupported | String | |
envoyHttpAls.port |
Unsupported | Integer | |
envoyHttpAls.service |
Unsupported | String | |
envoyOtelAls.logFormat.labels |
Unsupported | Key-value map | |
envoyOtelAls.logFormat.text |
Unsupported | String | |
envoyOtelAls.logName |
Unsupported | String | |
envoyOtelAls.port |
Unsupported | Integer | |
envoyOtelAls.service |
Unsupported | String | |
envoyTcpAls.filterStateObjectsToLog |
Unsupported | String | |
envoyTcpAls.logName |
Unsupported | String | |
envoyTcpAls.port |
Unsupported | Integer | |
envoyTcpAls.service |
Unsupported | String | |
prometheus |
Unsupported | Object |
Provider Name (extensionProviders.name)
The following table lists the field-level support for extensionProviders.name.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
name |
Stable | String | Required. Must be unique across all extension providers. |
Locality Load Balancing (localityLbSetting)
The following table lists the field-level support for localityLbSetting.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
distribute.from |
Unsupported | String | |
distribute.to |
Unsupported | Key-value map | |
enabled |
Stable | Boolean | |
failover.from |
Stable | String | Requires outlierDetection to be configured on the traffic policy and it is only allowed syntactically to trigger WATERFALL_BY_ZONE. Specific routing paths are ignored. |
failover.to |
Stable | String | Requires outlierDetection to be configured on the traffic policy and it is only allowed syntactically to trigger WATERFALL_BY_ZONE. Specific routing paths are ignored. |
failoverPriority |
Unsupported | Array of strings |
Mesh & TLS Defaults (meshMTLS, tlsDefaults)
The following table lists the field-level support for meshMTLS and tlsDefaults.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
meshMTLS.cipherSuites |
Unsupported | Array of strings | |
meshMTLS.ecdhCurves |
Unsupported | Array of strings | |
meshMTLS.minProtocolVersion |
Unsupported | String (TLS_AUTO, TLSV1_2, TLSV1_3) |
|
tlsDefaults.cipherSuites |
Unsupported | Array of strings | |
tlsDefaults.ecdhCurves |
Unsupported | Array of strings | |
tlsDefaults.minProtocolVersion |
Unsupported | String (TLS_AUTO, TLSV1_2, TLSV1_3) |
Mesh Networks (networks)
The following table lists the field-level support for networks.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
endpoints.fromCidr |
Stable | String | |
endpoints.fromRegistry |
Stable | String | |
gateways.address |
Stable | String | |
gateways.locality |
Stable | String | |
gateways.port |
Stable | Integer | |
gateways.registryServiceName |
Stable | String |
Outbound Traffic Policy & Service Settings (outboundTrafficPolicy, serviceSettings)
The following table lists the field-level support for outboundTrafficPolicy and
serviceSettings.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
outboundTrafficPolicy.mode |
Stable | String (REGISTRY_ONLY, ALLOW_ANY) |
Configures mesh-wide outbound traffic handling for unknown destinations. |
serviceSettings.hosts |
Stable | Array of strings | |
serviceSettings.settings.clusterLocal |
Stable | Boolean |
TCP Keepalive (tcpKeepalive)
The following table lists the field-level support for tcpKeepalive.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
interval |
Unsupported | Duration | |
probes |
Unsupported | Integer | |
time |
Unsupported | Duration |
Proxy General Settings (defaultConfig)
The following table lists the field-level support for defaultConfig.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
availabilityZone |
Unsupported | String | |
binaryPath |
Unsupported | String | |
caCertificatesPem |
Unsupported | Array of strings | |
concurrency |
Stable | Integer | |
configPath |
Unsupported | String | |
controlPlaneAuthPolicy |
Unsupported | String (NONE, MUTUAL_TLS, INHERIT) |
|
customConfigFile |
Unsupported | String | |
discoveryAddress |
Unsupported | String | |
discoveryRefreshDelay |
Unsupported | String | |
drainDuration |
Stable | Duration | Must have precision of seconds. Maximum 1 hour (3600s). |
envoyMetricsServiceAddress |
Unsupported | String | |
extraStatTags |
Unsupported | Array of strings | |
holdApplicationUntilProxyStarts |
Stable | Boolean | Delays application pod startup until Envoy proxy is ready. |
interceptionMode |
Stable | String (REDIRECT, TPROXY, NONE) |
Traffic interception mode for proxy sidecars. |
meshId |
Unsupported | String | |
proxyAdminPort |
Unsupported | Integer | |
proxyBootstrapTemplatePath |
Unsupported | String | |
proxyMetadata |
Stable | Key-value map | Supported metadata key-value pairs for proxy configuration. |
serviceCluster |
Unsupported | String | |
statNameLength |
Unsupported | Integer | |
statsdUdpAddress |
Unsupported | String | |
statusPort |
Unsupported | Integer | |
terminationDrainDuration |
Stable | Duration | Maximum grace period for connection drain during proxy shutdown. |
tracingServiceName |
Unsupported | String (APP_LABEL_AND_NAMESPACE, CANONICAL_NAME_ONLY, CANONICAL_NAME_AND_NAMESPACE) |
|
zipkinAddress |
Unsupported | String |
Tracing Settings (defaultConfig.tracing)
The following table lists the field-level support for defaultConfig.tracing.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
customTags |
Unsupported | Key-value map | |
datadog.address |
Unsupported | String | |
lightstep.accessToken |
Unsupported | String | |
lightstep.address |
Unsupported | String | |
maxPathTagLength |
Unsupported | Integer | |
openCensusAgent.address |
Unsupported | String | |
openCensusAgent.context |
Unsupported | Array of strings (UNSPECIFIED, W3C_TRACE_CONTEXT, GRPC_BIN, CLOUD_TRACE_CONTEXT, B3) |
|
sampling |
Unsupported | String | |
stackdriver.debug |
Unsupported | String | |
stackdriver.maxNumberOfAnnotations |
Unsupported | Key-value map | |
stackdriver.maxNumberOfAttributes |
Unsupported | String | |
stackdriver.maxNumberOfMessageEvents |
Unsupported | String | |
tlsSettings.caCertificates |
Unsupported | String | |
tlsSettings.clientCertificate |
Unsupported | String | |
tlsSettings.credentialName |
Unsupported | String | |
tlsSettings.insecureSkipVerify |
Unsupported | Boolean | |
tlsSettings.mode |
Unsupported | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
|
tlsSettings.privateKey |
Unsupported | String | |
tlsSettings.sni |
Unsupported | String | |
tlsSettings.subjectAltNames |
Unsupported | Array of strings | |
zipkin.address |
Unsupported | String |
Envoy Access Log & Metrics Service (defaultConfig.envoyAccessLogService, envoyMetricsService)
The following table lists the field-level support for
defaultConfig.envoyAccessLogService and envoyMetricsService.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
envoyAccessLogService.address |
Unsupported | String | |
envoyAccessLogService.tcpKeepalive.interval |
Unsupported | Duration | |
envoyAccessLogService.tcpKeepalive.probes |
Unsupported | Integer | |
envoyAccessLogService.tcpKeepalive.time |
Unsupported | Duration | |
envoyAccessLogService.tlsSettings.caCertificates |
Unsupported | String | |
envoyAccessLogService.tlsSettings.clientCertificate |
Unsupported | String | |
envoyAccessLogService.tlsSettings.credentialName |
Unsupported | String | |
envoyAccessLogService.tlsSettings.insecureSkipVerify |
Unsupported | Boolean | |
envoyAccessLogService.tlsSettings.mode |
Unsupported | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
|
envoyAccessLogService.tlsSettings.privateKey |
Unsupported | String | |
envoyAccessLogService.tlsSettings.sni |
Unsupported | String | |
envoyAccessLogService.tlsSettings.subjectAltNames |
Unsupported | Array of strings | |
envoyMetricsService.address |
Unsupported | String | |
envoyMetricsService.tcpKeepalive.interval |
Unsupported | Duration | |
envoyMetricsService.tcpKeepalive.probes |
Unsupported | Integer | |
envoyMetricsService.tcpKeepalive.time |
Unsupported | Duration | |
envoyMetricsService.tlsSettings.caCertificates |
Unsupported | String | |
envoyMetricsService.tlsSettings.clientCertificate |
Unsupported | String | |
envoyMetricsService.tlsSettings.credentialName |
Unsupported | String | |
envoyMetricsService.tlsSettings.insecureSkipVerify |
Unsupported | Boolean | |
envoyMetricsService.tlsSettings.mode |
Unsupported | String (DISABLE, SIMPLE, MUTUAL, ISTIO_MUTUAL) |
|
envoyMetricsService.tlsSettings.privateKey |
Unsupported | String | |
envoyMetricsService.tlsSettings.sni |
Unsupported | String | |
envoyMetricsService.tlsSettings.subjectAltNames |
Unsupported | Array of strings |
Readiness Probe Settings (defaultConfig.readinessProbe)
The following table lists the field-level support for
defaultConfig.readinessProbe.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
exec.command |
Unsupported | String | |
failureThreshold |
Unsupported | Integer | |
httpGet.host |
Unsupported | String | |
httpGet.httpHeaders.name |
Unsupported | String | |
httpGet.httpHeaders.value |
Unsupported | String | |
httpGet.path |
Unsupported | String | |
httpGet.port |
Unsupported | Integer | |
httpGet.scheme |
Unsupported | String | |
initialDelaySeconds |
Unsupported | Integer | |
periodSeconds |
Unsupported | Integer | |
successThreshold |
Unsupported | Integer | |
tcpSocket.host |
Unsupported | String | |
tcpSocket.port |
Unsupported | Integer | |
timeoutSeconds |
Unsupported | Integer |
Proxy Headers & Topology (defaultConfig.proxyHeaders, gatewayTopology)
The following table lists the field-level support for defaultConfig.proxyHeaders
and gatewayTopology.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
gatewayTopology.forwardClientCertDetails |
Stable | String (UNDEFINED, SANITIZE, FORWARD_ONLY, APPEND_FORWARD, SANITIZE_SET, ALWAYS_FORWARD_ONLY) |
|
gatewayTopology.numTrustedProxies |
Stable | Integer | |
gatewayTopology.proxyProtocol |
Unsupported | Object | |
proxyHeaders.attemptCount.disabled |
Unsupported | Boolean | |
proxyHeaders.envoyDebugHeaders.disabled |
Unsupported | Boolean | |
proxyHeaders.forwardedClientCert |
Unsupported | String (UNDEFINED, SANITIZE, FORWARD_ONLY, APPEND_FORWARD, SANITIZE_SET, ALWAYS_FORWARD_ONLY) |
|
proxyHeaders.metadataExchangeHeaders.mode |
Unsupported | String (UNDEFINED, IN_MESH) |
|
proxyHeaders.requestId.disabled |
Unsupported | Boolean | |
proxyHeaders.server.disabled |
Unsupported | Boolean | |
proxyHeaders.server.value |
Unsupported | String |
Proxy Metadata & Runtime Values (defaultConfig.proxyMetadata, runtimeValues)
The following table lists the field-level support for defaultConfig.proxyMetadata
and runtimeValues.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
CA_PROVIDER |
Stable | String | |
CA_ROOT_CA |
Unsupported | String | |
ENABLE_NATIVE_SIDECARS |
Unsupported | String | |
EXIT_ON_ZERO_ACTIVE_CONNECTIONS |
Stable | String | |
GCE_METADATA_HOST |
Unsupported | String | |
GCP_METADATA |
Stable | String | |
GKE_CLUSTER_URL |
Stable | String | |
GODEBUG |
Stable | String | |
GRPC_VERBOSITY |
Stable | String | |
HTTPS_PROXY |
Unsupported | String | |
HTTP_PROXY |
Unsupported | String | |
ISTIO_LOG_LEVEL |
Unsupported | String | |
ISTIO_META_CLOUDRUN_ADDR |
Stable | String | |
ISTIO_META_DNS_AUTO_ALLOCATE |
Unsupported | String | |
ISTIO_META_DNS_CAPTURE |
Unsupported | String | |
ISTIO_META_ENABLE_GSM_TD_LRS |
Stable | String | |
ISTIO_META_ENABLE_MCP_LRS |
Stable | String | |
ISTIO_META_GSM_TD_XDS_CAPABILITIES |
Stable | String | |
ISTIO_META_HTTP10 |
Unsupported | String | |
ISTIO_META_PROXY_XDS_VIA_AGENT |
Unsupported | String | |
ISTIO_META_ENABLE_NATIVE_SIDECARS |
Unsupported | String | |
MINIMUM_DRAIN_DURATION |
Stable | String | |
OUTPUT_CERTS |
Unsupported | String | |
PILOT_ENABLE_CONFIG_DISTRIBUTION_TRACKING |
Unsupported | String | |
PILOT_ENABLE_K8S_SELECT_WORKLOAD_ENTRIES |
Unsupported | String | |
PILOT_JWT_ENABLE_REMOTE_JWKS |
Unsupported | String | |
PLUGINS |
Unsupported | String | |
PROXY_CONFIG_XDS_AGENT |
Unsupported | String | |
SECRET_GRACE_PERIOD_RATIO |
Stable | String | |
SECRET_TTL |
Stable | String | |
TERMINATION_DRAIN_DURATION_SECONDS |
Stable | String | |
TRUST_DOMAIN |
Unsupported | String | |
USE_TOKEN_FOR_CSR |
Stable | String | |
XDS_AUTH_PROVIDER |
Unsupported | String | |
XDS_HEADER_Cloud-Run-Enable-H2 |
Unsupported | String | |
XDS_ROOT_CA |
Unsupported | String | |
runtimeValues |
Stable | Key-value map |
Security & Other Settings (defaultConfig.sds, privateKeyProvider, proxyStatsMatcher, image)
The following table lists the field-level support for defaultConfig.sds,
privateKeyProvider, proxyStatsMatcher, and image.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
image.imageType |
Stable | String (distroless) |
Only distroless is supported. |
privateKeyProvider.cryptomb.pollDelay |
Unsupported | Duration | |
privateKeyProvider.qat.pollDelay |
Unsupported | Duration | |
proxyStatsMatcher.inclusionPrefixes |
Stable | Array of strings | |
proxyStatsMatcher.inclusionRegexps |
Stable | Array of strings | |
proxyStatsMatcher.inclusionSuffixes |
Stable | Array of strings | |
sds.enabled |
Unsupported | Boolean | |
sds.k8sSaJwtPath |
Unsupported | String |
GCPBackend (networking.gke.io/v1)
The following sections describe the supported fields for GCPBackend resources.
Spec Fields
The following table lists the supported spec fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
spec.hostname |
Stable | String (RFC 1123 hostname) | |
spec.port |
Stable | Integer | |
spec.type |
Stable | String (CloudRun, BackendService, or unset for spec.serviceUris) |
|
spec.cloudrun.service |
Stable | String | |
spec.cloudrun.regions |
Stable | Array of strings (Region) | |
spec.cloudrun.project |
Stable | String | Must be the project ID of the cluster. Cross-project Cloud Run backends aren't supported. |
spec.backendservice.name |
Stable | String | |
spec.backendservice.location |
Stable | String (global) |
Must be global. Regional backend services aren't supported. |
spec.backendservice.project |
Stable | String (Project ID) | Must be the project ID of the cluster. Cross-project backend services aren't supported. |
spec.serviceUris |
Stable | Array of strings (URI) | All URIs must be of the same type, must be regional, and at most one URI per region is allowed. |
GCPBackendPolicy (networking.gke.io/v1)
The following sections describe the supported fields for GCPBackendPolicy
resources.
Root & Default Policy Fields
The following table lists the supported root and default policy fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
targetRef |
Stable | Object (group, kind, name, namespace) |
Must target a Service. Cross-namespace references are not supported. |
default.maxRatePerEndpoint |
Stable | Integer | |
default.backendPreference |
Stable | String (DEFAULT, PREFERRED) |
|
default.logging |
Unsupported | Object | |
default.sessionAffinity |
Unsupported | Object | |
default.connectionDraining |
Unsupported | Object | |
default.timeoutSec |
Unsupported | Integer | |
default.securityPolicy |
Unsupported | String | |
default.iap |
Unsupported | Object | |
default.balancingMode |
Unsupported | String | |
default.capacityScalerPercent |
Unsupported | Integer | |
default.customMetrics |
Unsupported | Array of objects | |
default.scopes |
Unsupported | Array of objects | |
default.trafficDuration |
Unsupported | String | |
default.maxInFlightRequestsPerEndpoint |
Unsupported | Integer |
GCPTrafficDistributionPolicy (networking.gke.io/v1)
The following sections describe the supported fields for
GCPTrafficDistributionPolicy resources.
Root & Default Policy Fields
The following table lists the supported root and default policy fields.
| Field | Highest Channel Support | Supported Data Types (Values) | Limitations |
|---|---|---|---|
targetRefs |
Stable | Array of objects (group, kind, name) |
Must reference Service resources. |
default.serviceLbAlgorithm |
Stable | String (SPRAY_TO_REGION, WATERFALL_BY_ZONE, WATERFALL_BY_REGION) |
Defaults to WATERFALL_BY_REGION if omitted. |
default.autoCapacityDrain.enableAutoCapacityDrain |
Stable | Boolean | |
default.failoverConfig.failoverHealthThreshold |
Stable | Integer | |
default.localityLbAlgorithm |
Unsupported | String | |
default.minimumHashRingSize |
Unsupported | Integer | |
default.customMetrics |
Unsupported | Array of objects | |
default.sessionAffinity |
Unsupported | Object | |
default.subsetting |
Unsupported | String | |
default.sharding |
Unsupported | Object |
Annotations
The following table lists the supported annotations.
| Annotation | Highest Channel Support | Resource | Description | Limitations |
|---|---|---|---|---|
alpha.istio.io/canonical-serviceaccounts |
Unsupported | Service | Specifies the non-Kubernetes service accounts that are allowed to run this service. | Deprecated. |
alpha.istio.io/identity |
Unsupported | Pod | Identity for the workload. | Deprecated. |
alpha.istio.io/kubernetes-serviceaccounts |
Unsupported | Service | Specifies the Kubernetes service accounts that are allowed to run this service on the VMs. | Deprecated. |
galley.istio.io/analyze-suppress |
Unsupported | Any | A comma-separated list of configuration analysis message codes to suppress when Istio analyzers are run (for example, galley.istio.io/analyze-suppress=IST0108,IST0103 or * for all). |
|
gateway.istio.io/controller-version |
Unsupported | Any | A version added to the Gateway by the controller specifying the controller version. | |
inject.istio.io/templates |
Stable | Pod | The names of the inject templates to use, as a comma-separated list. See custom templates. | |
install.operator.istio.io/chart-owner |
Stable | Any | Represents the name of the chart used to create this resource. | |
install.operator.istio.io/owner-generation |
Stable | Any | Represents the generation to which the resource was last reconciled. | |
install.operator.istio.io/version |
Stable | Any | Represents the Istio version associated with the resource. | |
istio.io/autoRegistrationGroup |
Unsupported | WorkloadEntry | On a WorkloadEntry, stores the associated WorkloadGroup. | |
istio.io/connectedAt |
Unsupported | WorkloadEntry | On a WorkloadEntry, stores the time in nanoseconds when the associated workload connected to a Pilot instance. | |
istio.io/disconnectedAt |
Unsupported | WorkloadEntry | On a WorkloadEntry, stores the time in nanoseconds when the associated workload disconnected from a Pilot instance. | |
istio.io/dry-run |
Stable | AuthorizationPolicy | Specifies whether the given resource is in dry-run mode. See dry-run mode. | |
istio.io/rev |
Stable | Pod | Specifies a control plane revision to which a given proxy is connected. | Added automatically by the control plane; not set by a user. Represents the actual revision, not the requested revision. |
istio.io/workloadController |
Unsupported | WorkloadEntry | On a WorkloadEntry, stores the current or last pilot instance connected to the workload for XDS. | |
kubernetes.io/ingress.class |
Stable | Ingress | Annotation on an Ingress resource denoting the class of controllers responsible for it. | |
networking.istio.io/exportTo |
Unsupported | Service | Specifies the namespaces to which this service should be exported. A value of * indicates it is reachable within the mesh, . indicates it is reachable within its namespace. |
|
prometheus.istio.io/merge-metrics |
Unsupported | Pod | Specifies whether application Prometheus metrics are merged with Envoy metrics for this workload. | |
proxy.istio.io/config |
Stable | Pod | Overrides for the proxy configuration for this specific proxy. Available options can be found in the ProxyConfig reference. | |
proxy.istio.io/overrides |
Stable | Pod | Used internally to indicate user-specified overrides in the proxy container of the pod during injection. | |
readiness.status.sidecar.istio.io/applicationPorts |
Unsupported | Pod | Specifies the list of ports exposed by the application container. Used by the Envoy sidecar readiness probe to determine that Envoy is configured and ready to receive traffic. | |
readiness.status.sidecar.istio.io/failureThreshold |
Unsupported | Pod | Specifies the failure threshold for the Envoy sidecar readiness probe. | |
readiness.status.sidecar.istio.io/initialDelaySeconds |
Unsupported | Pod | Specifies the initial delay (in seconds) for the Envoy sidecar readiness probe. | |
readiness.status.sidecar.istio.io/periodSeconds |
Unsupported | Pod | Specifies the period (in seconds) for the Envoy sidecar readiness probe. | |
sidecar.istio.io/agentLogLevel |
Stable | Pod | Specifies the log output level for pilot-agent. |
|
sidecar.istio.io/bootstrapOverride |
Unsupported | Pod | Specifies an alternative Envoy bootstrap configuration file. | |
sidecar.istio.io/componentLogLevel |
Unsupported | Pod | Specifies the component log level for Envoy. | |
sidecar.istio.io/controlPlaneAuthPolicy |
Unsupported | Pod | Specifies the authentication policy used by the Istio control plane. If NONE, traffic won't be encrypted. If MUTUAL_TLS, traffic between Envoy sidecars is wrapped into mutual TLS connections. |
Deprecated. |
sidecar.istio.io/discoveryAddress |
Unsupported | Pod | Specifies the XDS address to use for this specific workload. | Deprecated. |
sidecar.istio.io/enableCoreDump |
Stable | Pod | Specifies whether an Envoy sidecar should enable core dump. | |
sidecar.istio.io/extraStatTags |
Unsupported | Pod | An additional list of tags to extract from the in-proxy Istio Wasm telemetry. | Deprecated. |
sidecar.istio.io/inject |
Stable | Pod | Specifies whether an Envoy sidecar should be automatically injected into the workload. | Deprecated in favor of the sidecar.istio.io/inject label. |
sidecar.istio.io/interceptionMode |
Stable | Pod | Specifies the mode used to redirect inbound connections to Envoy (REDIRECT or TPROXY). |
|
sidecar.istio.io/logLevel |
Stable | Pod | Specifies the log level for Envoy. | |
sidecar.istio.io/proxyCPU |
Stable | Pod | Specifies the requested CPU setting for the Envoy sidecar. | |
sidecar.istio.io/proxyCPULimit |
Stable | Pod | Specifies the CPU limit for the Envoy sidecar. | |
sidecar.istio.io/proxyImage |
Unsupported | Pod | Specifies the Docker image to be used by the Envoy sidecar. | |
sidecar.istio.io/proxyImageType |
Stable | Pod | Specifies the Docker image type to be used by the Envoy sidecar. | Only distroless is supported. |
sidecar.istio.io/proxyMemory |
Stable | Pod | Specifies the requested memory setting for the Envoy sidecar. | |
sidecar.istio.io/proxyMemoryLimit |
Stable | Pod | Specifies the memory limit for the Envoy sidecar. | |
sidecar.istio.io/rewriteAppHTTPProbers |
Unsupported | Pod | Rewrite HTTP readiness and liveness probes to be redirected to the Envoy sidecar. | |
sidecar.istio.io/statsHistogramBuckets |
Unsupported | Pod | Specifies the custom histogram buckets with a prefix matcher to separate the Istio mesh metrics from the Envoy stats, such as {"istiocustom":[1,5,10,50,100,500,1000,5000,10000],"cluster.xds-grpc":[1,5,10,25,50,100,250,500,1000,2500,5000,10000]}. Default buckets are [0.5,1,5,10,25,50,100,250,500,1000,2500,5000,10000,30000,60000,300000,600000,1800000,3600000]. |
|
sidecar.istio.io/statsInclusionPrefixes |
Unsupported | Pod | Specifies the comma-separated list of prefixes of the stats to be emitted by Envoy. | Deprecated. |
sidecar.istio.io/statsInclusionRegexps |
Unsupported | Pod | Specifies the comma-separated list of regular expressions the stats should match to be emitted by Envoy. | Deprecated. |
sidecar.istio.io/statsInclusionSuffixes |
Unsupported | Pod | Specifies the comma-separated list of suffixes of the stats to be emitted by Envoy. | Deprecated. |
sidecar.istio.io/status |
Stable | Pod | Generated by Envoy sidecar injection that indicates the status of the operation. Includes a version hash of the executed template and the names of injected resources. | |
sidecar.istio.io/userVolume |
Unsupported | Pod | Specifies one or more user volumes (as a JSON array) to be added to the Envoy sidecar. | |
sidecar.istio.io/userVolumeMount |
Unsupported | Pod | Specifies one or more user volume mounts (as a JSON array) to be added to the Envoy sidecar. | |
status.sidecar.istio.io/port |
Stable | Pod | Specifies the HTTP status port for the Envoy sidecar. | If zero, the sidecar won't provide status. |
topology.istio.io/controlPlaneClusters |
Unsupported | Namespace | A comma-separated list of clusters (or * for any) running istiod that should attempt leader election for a remote cluster whose system namespace includes this annotation. |
|
traffic.istio.io/nodeSelector |
Unsupported | Service | A set of node labels (key1=value,key2=value) used for cross-network communication. |
|
traffic.sidecar.istio.io/excludeInboundPorts |
Stable | Pod | A comma-separated list of inbound ports to be excluded from redirection to Envoy. | Only applies when all inbound traffic (that is, *) is being redirected. |
traffic.sidecar.istio.io/excludeInterfaces |
Stable | Pod | A comma-separated list of interfaces to be excluded from Istio traffic capture. | |
traffic.sidecar.istio.io/excludeOutboundIPRanges |
Stable | Pod | A comma-separated list of IP ranges in CIDR form to be excluded from redirection. | Only applies when all outbound traffic (that is, *) is being redirected. |
traffic.sidecar.istio.io/excludeOutboundPorts |
Stable | Pod | A comma-separated list of outbound ports to be excluded from redirection to Envoy. | |
traffic.sidecar.istio.io/includeInboundPorts |
Stable | Pod | A comma-separated list of inbound ports for which traffic is to be redirected to Envoy. The wildcard character * can be used to configure redirection for all ports. An empty list disables all inbound redirection. |
|
traffic.sidecar.istio.io/includeOutboundIPRanges |
Stable | Pod | A comma-separated list of IP ranges in CIDR form to redirect to Envoy (optional). The wildcard character * can be used to redirect all outbound traffic. An empty list disables all outbound redirection. |
|
traffic.sidecar.istio.io/includeOutboundPorts |
Stable | Pod | A comma-separated list of outbound ports for which traffic is to be redirected to Envoy, regardless of the destination IP. | |
traffic.sidecar.istio.io/kubevirtInterfaces |
Unsupported | Pod | A comma-separated list of virtual interfaces whose inbound traffic (from VM) is treated as outbound. |