Skip to content

extproc: implement ClientFilter and ClientFilterBuilder interface#9086

Open
eshitachandwani wants to merge 10 commits intogrpc:masterfrom
eshitachandwani:build_client_interceptor
Open

extproc: implement ClientFilter and ClientFilterBuilder interface#9086
eshitachandwani wants to merge 10 commits intogrpc:masterfrom
eshitachandwani:build_client_interceptor

Conversation

@eshitachandwani
Copy link
Copy Markdown
Member

This PR is part of implementing A93: xds-ext-proc

This PR adds the builder that implements the ClientFilter and ClientFilterBuilder interface. That includes creating the interceptor config from the base and the override config. It also includes making the ext_proc channel.

THis PR has a placeholder function for converting grpcService to ServerConfig proto. The function will be implemented later when implementing gRFC A102.

The interceptor struct has a resolver.ClientInterceptor embedded for now, but that will be removed in a later PR when we implement the resolver.ClientInterceptor interface. Since the filter will not be registered and no one is calling the resolver.ClientInterceptor function fro extproc filter , it will not panic.

#ext-proc-a93

RELEASE NOTES: None

@eshitachandwani eshitachandwani added this to the 1.82 Release milestone Apr 22, 2026
@eshitachandwani eshitachandwani added the Type: Feature New features or improvements in behavior label Apr 22, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 22, 2026

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.07%. Comparing base (06fc26a) to head (87fb4c7).
⚠️ Report is 12 commits behind head on master.

Files with missing lines Patch % Lines
internal/xds/httpfilter/extproc/ext_proc.go 86.66% 2 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #9086      +/-   ##
==========================================
+ Coverage   80.52%   83.07%   +2.54%     
==========================================
  Files         413      415       +2     
  Lines       33543    33527      -16     
==========================================
+ Hits        27012    27854     +842     
+ Misses       4316     4243      -73     
+ Partials     2215     1430     -785     
Files with missing lines Coverage Δ
internal/xds/httpfilter/extproc/config.go 100.00% <100.00%> (ø)
internal/xds/httpfilter/extproc/ext_proc.go 86.66% <86.66%> (ø)

... and 38 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@eshitachandwani
Copy link
Copy Markdown
Member Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the Envoy external processing filter, providing configuration parsing logic and the infrastructure to build a client interceptor. Feedback addresses a critical uninitialized function variable that would cause a panic during filter construction and suggests a performance optimization for slice allocation when converting string matchers.

Comment thread internal/xds/httpfilter/extproc/ext_proc.go Outdated
Comment thread internal/xds/httpfilter/extproc/config.go Outdated
eshitachandwani and others added 3 commits April 26, 2026 22:33
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Type: Feature New features or improvements in behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants