Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Inference Extension Plugin and Deployer #10684

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

danehans
Copy link
Contributor

@danehans danehans commented Feb 22, 2025

Description

Adds initial support for an inference extension endpoint picker deployer and plugin.

Plugin:

  • Contributes an Upstream based on an InferencePool.
  • Creates the endpoints collection based on namespace-local Pod IPs from the InferencePool selector.
  • Creates an Envoy ORIGINAL_DST from the InferencePool-generated.

Deployer:

  • Adds initial support for an InferencePool controller and deployer. This controller and deployer are independent of a gateway deployer. For now, both share the GatewayConfig type since refactoring this type would further increase the size of this PR.

API changes

N/A

Code changes

Plugin:

  • Adds inferenceextension/endpointpicker pkg
  • Updates krtcollections pkg to transform InferencePool endpoints into Upstream endpoints.
  • Bumps go deps for inference extension pkg
  • Runs code generators due to go dep bump.

Deployer:

  • Controller, deployer, and helm pkgs.

CI changes

N/A

Docs changes

Godocs added throughout. User docs will be added in a future PR.

Context

Supports #10411

Interesting decisions

Plugin:

  • To keep the PR small, this is the first of multiple PRs to implement the endpoint picker plugin. This PR _does not create the ext-prc cluster nor does it add the ext-proc filter to the listeners filter chain.

Deployer:

  • This PR Implements a separate deployer since an InferencePool (and the supporting infra resources) do not depend on a Gateway. Instead, a deployed Gateway will use config from an InferencePool to learn how to connect to it, what failure mode to use, etc.

Testing steps

Unit tests were added. e2e tests are still required and not included here due to the size of the PR.

Notes for reviewers

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works

@danehans
Copy link
Contributor Author

Note: To pass CI, this PR includes a few identical commits as #10676 for go mod bump, code generations, etc.

@danehans danehans changed the title Issue 10411 epp plugin Initial Inference Extension Plugin Feb 22, 2025
@danehans danehans force-pushed the issue_10411_epp_plugin branch from bd4d69b to b981485 Compare February 22, 2025 21:08
out.CircuitBreakers = &envoy_config_cluster_v3.CircuitBreakers{
Thresholds: []*envoy_config_cluster_v3.CircuitBreakers_Thresholds{
{
MaxConnections: wrapperspb.UInt32(40000),
Copy link
Contributor

Choose a reason for hiding this comment

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

where is 40000 coming from?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@danehans
Copy link
Contributor Author

danehans commented Feb 25, 2025

@yuval-k 4fd238f (WIP) adds support for creating the ext_proc cluster and route filters, PTAL. This commit does not include your review feedback. I'll work on that today.

@danehans danehans marked this pull request as draft February 25, 2025 15:43
@danehans danehans requested review from lgadban and yuval-k February 25, 2025 15:43
@danehans danehans force-pushed the issue_10411_epp_plugin branch 3 times, most recently from 3539224 to 215d19c Compare February 25, 2025 17:09
@danehans danehans changed the title Initial Inference Extension Plugin Initial Inference Extension Plugin and Deployer Feb 27, 2025
@danehans danehans force-pushed the issue_10411_epp_plugin branch from 215d19c to 9e3f6e3 Compare February 27, 2025 23:34
@danehans danehans marked this pull request as ready for review February 27, 2025 23:35
@danehans danehans force-pushed the issue_10411_epp_plugin branch 3 times, most recently from eda00c9 to c5c1063 Compare March 4, 2025 19:10
@danehans danehans marked this pull request as draft March 5, 2025 05:22
@danehans danehans force-pushed the issue_10411_epp_plugin branch 8 times, most recently from e2b80f9 to e69c752 Compare March 7, 2025 23:17
@danehans danehans force-pushed the issue_10411_epp_plugin branch from e69c752 to c01ceec Compare March 8, 2025 00:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants