Skip to content

Move Alpha Gateway API Inference Extension support to master#56845

Merged
istio-testing merged 22 commits intomasterfrom
experimental-gwapi-inference-extension
Jul 8, 2025
Merged

Move Alpha Gateway API Inference Extension support to master#56845
istio-testing merged 22 commits intomasterfrom
experimental-gwapi-inference-extension

Conversation

@LiorLieberman
Copy link
Copy Markdown
Contributor

@LiorLieberman LiorLieberman commented Jul 1, 2025

Please provide a description of this PR:
Gateway api inference extension support was introduced last March on a a branch.

#55768 tracks the completed workstreams related to improve and stabilize the support that happened during the last few month.

We open this PR to merge to master and have this released, guarded by a feature flag on main istio releases.

Support for waypoints is going to follow post 1.27 release.

/cc @aslakknutsen, @keithmattix

Docs and blog post to follow

LiorLieberman and others added 19 commits July 1, 2025 01:12
* Automator: update proxy@master in istio/istio@master (#55590)

* add inferencepool reconcile draft

* add global extProc draft

* add support for infernecePool internal sematics

* attempt to add extProcPerRoute

* address comments

* address feedback

* add push_context changes

* add inferencepool status handler

* more nits

* add tests and cleanup

* add deploymentcontroller tests

* more tests

* furnish tests

* gofmt

* add temporaray exclude

* more formatting

* more stuff

---------

Co-authored-by: Istio Automation <istio-testing-bot@google.com>
* Automator: update proxy@master in istio/istio@master (#55590)

* add auto crds gen and clusterrole

---------

Co-authored-by: Istio Automation <istio-testing-bot@google.com>
… for Gateway Inference Extension (#56089)

* fix: change to FULL_DUPLEX_STREAMED processing mode for GIE

* Automator: update common-files@master in istio/istio@master (#55878)

* TMP: Regen due to odd something version update something somewhere for some reason

* a

* Automator: update proxy@master in istio/istio@master (#56094)

* Create ambient multinetwork flag (#55991)

* Create new multinetwork flag

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Add new topology

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Pass Values.global.network to ztunnel

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Skip workload to workload test if workloads are in different clusters

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fix several tests that aren't ready for multicluster

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fix some more tests

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fix all non-CNI/taint ambient tests

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fix lint

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: Aslak Knutsen <aslak@4fs.no>
Co-authored-by: Istio Automation <istio-testing-bot@google.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
…56463)

* Set the Gateway Inference Extension EndPointPicker to receive response bodies

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Updated the test to look for extra configuration parameters

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Formatting change after running make gen

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Correct typo in comment

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Updates from running make gen

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
The rebase on master requires a `make gen`.

related to #56612
* gw-inference: support new envoy override_host lb policy

* mainly formatting
* add extra field for Config for inferencepool config propagation

* fix tests

* address feedback

* dont mutate external map inside the itr
* Refactor inference extension support to krt

We do this mainly by integrating it with the rest of the gateway
controller. The conversion logic now has shadow inference services as an
output we can query from pushcontext or whatever else

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Create shadow service outside of the collection

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Address PR comments

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Actually run the queue

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fixups

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fallback to deep equal

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* replace label-based gateway opt in

* replace label names

* add-tests
…56832)

* feat(gw-inference): support InferencePool as To target for ReferenceGrants
Allow cross namespace references for InferencePools. This allow HTTPRoutes
to target InferencePools in another namespace.

ReferenceGrants.BackendAllowed now takes a GVK to the to Object as an argument
along side namespace and name. If GVK is unknown it will default to Service.

* test: add resource grant for inferencepool tests
* feat(gw-inference): Improve InferencePool.Status handling

Includes tests for InferencePool.Status handling and cross namespace
lookups.

Test for the following basic scenarios:
* Cross namespace references
* Removing old state
* Keeping old state from other controllers
* ResolvedRef conditions
* Accepted conditions

A HTTPRoute can target BackendRefs in namespaces besides it self,
so when we try to do a reverse lookup from InferencePool to find parent
Gateways via HTTPRoute we need to list all HTTPRoutes in all Namespaces.

Added InferencePool to HTTPRoute.BackendRef index for easy access.
lookups.

relates to #56621

* fix: safe guard possible nil access

* test: add copyright and lint fixes

* fix: remove default status message when we take control

* fix: remove unused status types hanging around from earlier runs. We want to keep the ones we know to update state or not

* fix(test): lint line to long
* add failuremode support on inferencepool

* update proxy sha

* fix conversion_test.go

* fix crl test
* fix: refactored InferenceController

Refactored into 3 main pieces;

0. fetch routes via index

1. find our gateway parents
2. create shadow info
3. create status

Update to latest GIE to get API changes
Added support for checking the HTTPRoute Accepted status as part of InferencePool Accepted status.

* fix: reuse isInferencePoolBackendRef in index

* fix: use ptr.OrEmpty where applicable

* run make gen
)

The InferencePool should only create a shadow service if a
HTTPRoute that has a Gateway that we control is connected. Else
do nothing.

Clean up Service and Status if the HTTPRoute disconnects.
@istio-testing istio-testing added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Jul 1, 2025
* add releasenotes and disable-by-default

* add test featureflag

* increase binary sizes due to krt
@LiorLieberman
Copy link
Copy Markdown
Contributor Author

/test integ-pilot-istiodremote

deny:
- pkg: github.com/gogo/protobuf
desc: gogo/protobuf is deprecated, use golang/protobuf
AllGoFiles:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We shouldn't be modifying anything in common/ from the istio repo to the master branch. The changes need to be introduced to the common-files repo.

Copy link
Copy Markdown
Contributor

@aslakknutsen aslakknutsen Jul 2, 2025

Choose a reason for hiding this comment

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

If I remember correctly this all came in when we were trying to get some externally added "remote/ambient" PR job to work with this branch. I don't even think any of it is needed by GIE directly, @LiorLieberman ? 4309f8d

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yeah ideally we wouldn't need this reordering

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think the diff is due to #55828.

@aslakknutsen any idea why the rebase took this and not the newer file? any change we did there in particular?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

So I compared the two. The only difference is

paths:
- third_party$
- builtin$
- examples$
- vendor$
- third_party$
- builtin$
- examples$

Not sure why these are specified twice

      - third_party$
      - builtin$
      - examples$

and why we removed

      - .*\.pb\.go
      - .*\.gen\.go
      - genfiles$

@howardjohn @zirain thoughts?

Copy link
Copy Markdown
Contributor

@aslakknutsen aslakknutsen Jul 2, 2025

Choose a reason for hiding this comment

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

@LiorLieberman To my knowledge we did nothing in there. It came from the mess here #56055 (comment)

But I guess to fix it, we just overwrite this file with current master and append a new commit here? If we view this PR as 1 we can pretend it never happened. :)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@dhawton in the meantime I reverted this change in #56866 - can you review?

Copy link
Copy Markdown
Member

@dhawton dhawton left a comment

Choose a reason for hiding this comment

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

Some minor nits on the first pass. Would recommend taking the common/ changes and opening a PR in common-files first, and then rebasing this on the master head that will come after that PR merges and is copied around the repos. Otherwise, the changes will be lost on the next common-files update.

deny:
- pkg: github.com/gogo/protobuf
desc: gogo/protobuf is deprecated, use golang/protobuf
AllGoFiles:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yeah ideally we wouldn't need this reordering

@LiorLieberman LiorLieberman requested a review from dhawton July 7, 2025 17:34
* Fixups

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Tackle other TODO

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@istio-testing istio-testing merged commit 7021701 into master Jul 8, 2025
30 checks passed
@keithmattix keithmattix added the cherrypick/release-1.27 Set this label on a PR to auto-merge it to the release-1.27 branch label Jul 22, 2025
@istio-testing
Copy link
Copy Markdown
Collaborator

In response to a cherrypick label: #56845 failed to apply on top of branch "release-1.27":

Applying: gateway-api-inference-extenstion support (#55436)
.git/rebase-apply/patch:2928: trailing whitespace.
    
warning: 1 line adds whitespace errors.
Using index info to reconstruct a base tree...
M	go.mod
M	go.sum
M	pilot/pkg/bootstrap/configcontroller.go
M	pilot/pkg/config/kube/gateway/deploymentcontroller.go
M	pilot/pkg/config/kube/gateway/deploymentcontroller_test.go
M	pilot/pkg/features/experimental.go
M	pilot/pkg/model/service.go
M	pilot/pkg/networking/core/cluster.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/networking/core/cluster.go
Auto-merging pilot/pkg/model/service.go
Auto-merging pilot/pkg/features/experimental.go
Auto-merging pilot/pkg/config/kube/gateway/deploymentcontroller_test.go
Auto-merging pilot/pkg/config/kube/gateway/deploymentcontroller.go
Auto-merging pilot/pkg/bootstrap/configcontroller.go
Auto-merging go.sum
Auto-merging go.mod
CONFLICT (content): Merge conflict in go.mod
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config advice.mergeConflict false"
Patch failed at 0001 gateway-api-inference-extenstion support (#55436)

@istio-testing
Copy link
Copy Markdown
Collaborator

In response to a cherrypick label: new issue created for failed cherrypick: #57096

aslakknutsen added a commit to aslakknutsen/istio that referenced this pull request Jul 22, 2025
…6845)

* gateway-api-inference-extenstion support (istio#55436)

* Automator: update proxy@master in istio/istio@master (istio#55590)

* add inferencepool reconcile draft

* add global extProc draft

* add support for infernecePool internal sematics

* attempt to add extProcPerRoute

* address comments

* address feedback

* add push_context changes

* add inferencepool status handler

* more nits

* add tests and cleanup

* add deploymentcontroller tests

* more tests

* furnish tests

* gofmt

* add temporaray exclude

* more formatting

* more stuff

---------

Co-authored-by: Istio Automation <istio-testing-bot@google.com>

* Clusterrole and auto gen (istio#55644)

* Automator: update proxy@master in istio/istio@master (istio#55590)

* add auto crds gen and clusterrole

---------

Co-authored-by: Istio Automation <istio-testing-bot@google.com>

* fix multiple inferencepools per route (istio#55683)

* ensure inference route name list has all the parts (istio#55705)

* change to extproc requestBody processing mode to FULL_DUPLEX_STREAMED for Gateway Inference Extension (istio#56089)

* fix: change to FULL_DUPLEX_STREAMED processing mode for GIE

* Automator: update common-files@master in istio/istio@master (istio#55878)

* TMP: Regen due to odd something version update something somewhere for some reason

* a

* Automator: update proxy@master in istio/istio@master (istio#56094)

* Create ambient multinetwork flag (istio#55991)

* Create new multinetwork flag

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Add new topology

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Pass Values.global.network to ztunnel

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Skip workload to workload test if workloads are in different clusters

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fix several tests that aren't ready for multicluster

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fix some more tests

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fix all non-CNI/taint ambient tests

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fix lint

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: Aslak Knutsen <aslak@4fs.no>
Co-authored-by: Istio Automation <istio-testing-bot@google.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>

* fix: The Gateway Inference Extension doesn't receive response bodies (istio#56463)

* Set the Gateway Inference Extension EndPointPicker to receive response bodies

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Updated the test to look for extra configuration parameters

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Formatting change after running make gen

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Correct typo in comment

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* Updates from running make gen

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

---------

Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>

* fix: update generated files after rebase

The rebase on master requires a `make gen`.

related to istio#56612

* gw-inference: support new envoy override_host lb policy (istio#56623)

* gw-inference: support new envoy override_host lb policy

* mainly formatting

* cleanup and tests for inference-lb-policy (istio#56655)

* improve inference config propagation (istio#56660)

* add extra field for Config for inferencepool config propagation

* fix tests

* address feedback

* dont mutate external map inside the itr

* Refactor inference extension support to krt (istio#56656)

* Refactor inference extension support to krt

We do this mainly by integrating it with the rest of the gateway
controller. The conversion logic now has shadow inference services as an
output we can query from pushcontext or whatever else

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Create shadow service outside of the collection

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Address PR comments

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Actually run the queue

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fixups

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Fallback to deep equal

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* fix(gw-inference): Add extra to the VirtualService Config clone/copy (istio#56775)

* Add inferencepools by gateways index (istio#56777)

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* replace label-based gateway opt in (istio#56778)

* replace label-based gateway opt in

* replace label names

* add-tests

* feat(gw-inference): Add support for InferencePool reference grants (istio#56832)

* feat(gw-inference): support InferencePool as To target for ReferenceGrants
Allow cross namespace references for InferencePools. This allow HTTPRoutes
to target InferencePools in another namespace.

ReferenceGrants.BackendAllowed now takes a GVK to the to Object as an argument
along side namespace and name. If GVK is unknown it will default to Service.

* test: add resource grant for inferencepool tests

* Inference pool Status handling and cross namespace references (istio#56792)

* feat(gw-inference): Improve InferencePool.Status handling

Includes tests for InferencePool.Status handling and cross namespace
lookups.

Test for the following basic scenarios:
* Cross namespace references
* Removing old state
* Keeping old state from other controllers
* ResolvedRef conditions
* Accepted conditions

A HTTPRoute can target BackendRefs in namespaces besides it self,
so when we try to do a reverse lookup from InferencePool to find parent
Gateways via HTTPRoute we need to list all HTTPRoutes in all Namespaces.

Added InferencePool to HTTPRoute.BackendRef index for easy access.
lookups.

relates to istio#56621

* fix: safe guard possible nil access

* test: add copyright and lint fixes

* fix: remove default status message when we take control

* fix: remove unused status types hanging around from earlier runs. We want to keep the ones we know to update state or not

* fix(test): lint line to long

* add failuremode support on inferencepool (istio#56819)

* add failuremode support on inferencepool

* update proxy sha

* fix conversion_test.go

* fix crl test

* fix(gw-inference): Refactored InferencePool Collection (istio#56831)

* fix: refactored InferenceController

Refactored into 3 main pieces;

0. fetch routes via index

1. find our gateway parents
2. create shadow info
3. create status

Update to latest GIE to get API changes
Added support for checking the HTTPRoute Accepted status as part of InferencePool Accepted status.

* fix: reuse isInferencePoolBackendRef in index

* fix: use ptr.OrEmpty where applicable

* run make gen

* fix(gw-inference): Shadow service should only exist if it has to (istio#56839)

The InferencePool should only create a shadow service if a
HTTPRoute that has a Gateway that we control is connected. Else
do nothing.

Clean up Service and Status if the HTTPRoute disconnects.

* Add releasenote and disable gw-inference by default (istio#56848)

* add releasenotes and disable-by-default

* add test featureflag

* increase binary sizes due to krt

* feedback and cleanup (istio#56866)

* (gaie): Fixups from master PR (istio#56899)

* Fixups

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Tackle other TODO

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
Co-authored-by: Istio Automation <istio-testing-bot@google.com>
Co-authored-by: Aslak Knutsen <aslak@4fs.no>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: Shmuel Kallner <kallner@il.ibm.com>
Co-authored-by: Aslak Knutsen <aslak.tux@gmail.com>
istio-testing added a commit that referenced this pull request Jul 23, 2025
…#57097)

* gateway-api-inference-extenstion support (#55436)

* Automator: update proxy@master in istio/istio@master (#55590)

* add inferencepool reconcile draft

* add global extProc draft

* add support for infernecePool internal sematics

* attempt to add extProcPerRoute

* address comments

* address feedback

* add push_context changes

* add inferencepool status handler

* more nits

* add tests and cleanup

* add deploymentcontroller tests

* more tests

* furnish tests

* gofmt

* add temporaray exclude

* more formatting

* more stuff

---------



* Clusterrole and auto gen (#55644)

* Automator: update proxy@master in istio/istio@master (#55590)

* add auto crds gen and clusterrole

---------



* fix multiple inferencepools per route (#55683)

* ensure inference route name list has all the parts (#55705)

* change to extproc requestBody processing mode to FULL_DUPLEX_STREAMED for Gateway Inference Extension (#56089)

* fix: change to FULL_DUPLEX_STREAMED processing mode for GIE

* Automator: update common-files@master in istio/istio@master (#55878)

* TMP: Regen due to odd something version update something somewhere for some reason

* a

* Automator: update proxy@master in istio/istio@master (#56094)

* Create ambient multinetwork flag (#55991)

* Create new multinetwork flag



* Add new topology



* Pass Values.global.network to ztunnel



* Skip workload to workload test if workloads are in different clusters



* Fix several tests that aren't ready for multicluster



* Fix some more tests



* Fix all non-CNI/taint ambient tests



* Fix lint



---------



---------






* fix: The Gateway Inference Extension doesn't receive response bodies (#56463)

* Set the Gateway Inference Extension EndPointPicker to receive response bodies



* Updated the test to look for extra configuration parameters



* Formatting change after running make gen



* Correct typo in comment



* Updates from running make gen



---------



* fix: update generated files after rebase

The rebase on master requires a `make gen`.

related to #56612

* gw-inference: support new envoy override_host lb policy (#56623)

* gw-inference: support new envoy override_host lb policy

* mainly formatting

* cleanup and tests for inference-lb-policy (#56655)

* improve inference config propagation (#56660)

* add extra field for Config for inferencepool config propagation

* fix tests

* address feedback

* dont mutate external map inside the itr

* Refactor inference extension support to krt (#56656)

* Refactor inference extension support to krt

We do this mainly by integrating it with the rest of the gateway
controller. The conversion logic now has shadow inference services as an
output we can query from pushcontext or whatever else



* Create shadow service outside of the collection



* Address PR comments



* Actually run the queue



* Fixups



* Fallback to deep equal



---------



* fix(gw-inference): Add extra to the VirtualService Config clone/copy (#56775)

* Add inferencepools by gateways index (#56777)



* replace label-based gateway opt in (#56778)

* replace label-based gateway opt in

* replace label names

* add-tests

* feat(gw-inference): Add support for InferencePool reference grants (#56832)

* feat(gw-inference): support InferencePool as To target for ReferenceGrants
Allow cross namespace references for InferencePools. This allow HTTPRoutes
to target InferencePools in another namespace.

ReferenceGrants.BackendAllowed now takes a GVK to the to Object as an argument
along side namespace and name. If GVK is unknown it will default to Service.

* test: add resource grant for inferencepool tests

* Inference pool Status handling and cross namespace references (#56792)

* feat(gw-inference): Improve InferencePool.Status handling

Includes tests for InferencePool.Status handling and cross namespace
lookups.

Test for the following basic scenarios:
* Cross namespace references
* Removing old state
* Keeping old state from other controllers
* ResolvedRef conditions
* Accepted conditions

A HTTPRoute can target BackendRefs in namespaces besides it self,
so when we try to do a reverse lookup from InferencePool to find parent
Gateways via HTTPRoute we need to list all HTTPRoutes in all Namespaces.

Added InferencePool to HTTPRoute.BackendRef index for easy access.
lookups.

relates to #56621

* fix: safe guard possible nil access

* test: add copyright and lint fixes

* fix: remove default status message when we take control

* fix: remove unused status types hanging around from earlier runs. We want to keep the ones we know to update state or not

* fix(test): lint line to long

* add failuremode support on inferencepool (#56819)

* add failuremode support on inferencepool

* update proxy sha

* fix conversion_test.go

* fix crl test

* fix(gw-inference): Refactored InferencePool Collection (#56831)

* fix: refactored InferenceController

Refactored into 3 main pieces;

0. fetch routes via index

1. find our gateway parents
2. create shadow info
3. create status

Update to latest GIE to get API changes
Added support for checking the HTTPRoute Accepted status as part of InferencePool Accepted status.

* fix: reuse isInferencePoolBackendRef in index

* fix: use ptr.OrEmpty where applicable

* run make gen

* fix(gw-inference): Shadow service should only exist if it has to (#56839)

The InferencePool should only create a shadow service if a
HTTPRoute that has a Gateway that we control is connected. Else
do nothing.

Clean up Service and Status if the HTTPRoute disconnects.

* Add releasenote and disable gw-inference by default (#56848)

* add releasenotes and disable-by-default

* add test featureflag

* increase binary sizes due to krt

* feedback and cleanup (#56866)

* (gaie): Fixups from master PR (#56899)

* Fixups



* Tackle other TODO



---------



---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
Co-authored-by: Lior Lieberman <liorlieberman@google.com>
Co-authored-by: Istio Automation <istio-testing-bot@google.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: Shmuel Kallner <kallner@il.ibm.com>
fjglira pushed a commit to fjglira/istio that referenced this pull request Sep 26, 2025
* upstream/master:
  set VERSION on master to 1.28 (istio#56902)
  Automator: update ztunnel@master in istio/istio@master (istio#56900)
  Move Alpha Gateway API Inference Extension support to master (istio#56845)
  Support native sidecar by default (istio#56428)
  feat: represent revision tags using services (istio#56851)
@jaellio jaellio mentioned this pull request Dec 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/networking cherrypick/release-1.27 Set this label on a PR to auto-merge it to the release-1.27 branch size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants