From f3e87b6267fa05c70cccd6adac83f319b51c3236 Mon Sep 17 00:00:00 2001 From: "data-plane-api(CircleCI)" Date: Tue, 25 Jun 2019 16:21:45 +0000 Subject: [PATCH] subset: allow matching metadata criteria with any element in list (#7047) This makes it possible to configure the subset LB to match metadata match criterias with any of the values specified in a list value on an endpoint. This allows endpoints to have multiple values for a given metadata key. To accomplish this the invariants of the subset trie construction changed: a host can now be associated with multiple subsets for a set of subset selectors. To support this the trie construction had to change to traverse all possible paths for each host. Fixes #6921 Signed-off-by: Snow Pettersen Mirrored from https://github.com/envoyproxy/envoy @ 41ecbb3e4bd48b425483e7c3aae17509f2ef3a80 --- envoy/api/v2/cds.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/envoy/api/v2/cds.proto b/envoy/api/v2/cds.proto index 4f79fda5..004e9ddc 100644 --- a/envoy/api/v2/cds.proto +++ b/envoy/api/v2/cds.proto @@ -428,6 +428,11 @@ message Cluster { // subset might become empty. With this option enabled, if that happens the LB will attempt // to select a host from the entire cluster. bool panic_mode_any = 6; + + // If true, metadata specified for a metadata key will be matched against the corresponding + // endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value + // and any of the elements in the list matches the criteria. + bool list_as_any = 7; } // Configuration for load balancing subsetting.