MetadataFilter

Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies.

For each

metadataFilter

in this list, if its

filterMatchCriteria

is set to

MATCH_ANY

, at least one of the

filterLabels

must match the corresponding label provided in the metadata. If its

filterMatchCriteria

is set to MATCH_ALL, then all of its

filterLabels

must match with corresponding labels provided in the metadata.

An example for using

metadataFilters

would be: if load balancing involves Envoys, they receive routing configuration when values in

metadataFilters

match values supplied in <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/base.proto#envoy-api-msg-core-node" Node metadata of their XDS requests to loadbalancers.

JSON representation
{
  "filterMatchCriteria": enum (MetadataFilterMatchCriteria),
  "filterLabels": [
    {
      object (MetadataFilterLabelMatch)
    }
  ]
}
Fields
filterMatchCriteria

enum (MetadataFilterMatchCriteria)

Specifies how individual filter label matches within the list of

filterLabels

and contributes toward the overall

metadataFilter

match.

Supported values are:

  • MATCH_ANY

    : at least one of the

    filterLabels

    must have a matching label in the provided metadata.

  • MATCH_ALL

    : all

    filterLabels

    must have matching labels in the provided metadata.

filterLabels[]

object (MetadataFilterLabelMatch)

The list of label value pairs that must match labels in the provided metadata based on

filterMatchCriteria

This list must not be empty and can have at the most 64 entries.

MetadataFilterMatchCriteria

Enumerates various ways individual

filterLabel

matches within the list of

filterLabels

contribute towards a MetadataFilter match.

Enums
NOT_SET

Indicates that the match criteria was not set. A

metadataFilter

must never be created with this value.

MATCH_ALL

Specifies that all

filterLabels

must match for the

metadataFilter

to be considered a match.

MATCH_ANY

Specifies that any

filterLabel

must match for the

metadataFilter

to be considered a match.

MetadataFilterLabelMatch

MetadataFilter

label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer.

JSON representation
{
  "name": string,
  "value": string
}
Fields
name

string

Name of metadata label.

The name can have a maximum length of 1024 characters and must be at least 1 character long.

value

string

The value of the label must match the specified value.

value can have a maximum length of 1024 characters.