xds: CEL implementation#12770
Conversation
|
Pasting @AgraVator's comment here from #12640 (comment): To support future attributes beyond just headers (like the aforementioned transport info or cluster metadata), we might want to consider a more pluggable way to populate MatchContext. Currently, it has a fixed set of fields. A map-based approach or a registry of attribute providers might make it easier to add new attributes without changing the core MatchContext class every time. |
I don't see what benefit is there in having a different class for each attribute like referer or user-agent. The list of Envoy request attributes is fixed and there is never a need to have some of them provided and other not. Rather than think in terms of organizing our code in terms of plugin, we should think in terms of providing the evaluation context for the Cel runtime. With A106 supporting only request attributes for now we have this in that provides a map to Cel runtime for evaluating request.* variables. That map is backed by |
This PR contains the core CEL evaluation logic and gRPC environment setup as defined in gRFC A106.
This is being carved out from #12640