Skip to content

Conversation

@mathetake
Copy link
Member

@mathetake mathetake commented Oct 8, 2025

Description

This upgrades the Envoy Gateway dependency to the latest main branch commit. Note that the Go level EG dependency is essentially only used in aigw run standalone mode. That is because in the k8s environment, the only code path where we use EG is to generate EG configurations, hence the data structures/control plane/extension server gRPC API which we should assume is stable. Moreover, we still have the e2e test with v1.5, so by no means this implies AIGW main branch cannot work with v1.5. On the other hand, this brings a lot of bug fixes and enhancement to the standalone mode.

// Explicitly specify the Go patch version to be able to purge the CI cache correctly.
go 1.25.1

replace go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0
Copy link
Member Author

Choose a reason for hiding this comment

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

fyi we got go run github.com/envoyproxy/ai-gateway/cmd/aigw@main run back

Copy link
Member

Choose a reason for hiding this comment

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

Niiiiiice!!

@mathetake
Copy link
Member Author

hmm mcp got broken

@mathetake
Copy link
Member Author

<< npx @modelcontextprotocol/[email protected] --cli http://localhost:1975/mcp --transport http --method 'tools/list'
Need to install the following packages:
@modelcontextprotocol/[email protected]
Ok to proceed? (y) y

Failed to connect to MCP server: Error POSTing to endpoint (HTTP 404): unsupported path: /mcp
Failed to connect to MCP server: Error POSTing to endpoint (HTTP 404): unsupported path: /mcp

so looks like the mcp request reaches the ai extproc... i guess some behavioral change around extensionserver

@codecov-commenter
Copy link

codecov-commenter commented Oct 8, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.59%. Comparing base (c6a6937) to head (efefd09).

❌ Your project status has failed because the head coverage (77.59%) is below the target coverage (86.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1309      +/-   ##
==========================================
+ Coverage   77.55%   77.59%   +0.03%     
==========================================
  Files         123      123              
  Lines       15719    15717       -2     
==========================================
+ Hits        12191    12195       +4     
+ Misses       2900     2896       -4     
+ Partials      628      626       -2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mathetake
Copy link
Member Author

/retest

Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Takeshi Yoneda <[email protected]>
@mathetake mathetake marked this pull request as ready for review October 8, 2025 19:48
@mathetake mathetake requested a review from a team as a code owner October 8, 2025 19:48
}
for _, secret := range originalSecrets {
mustWriteObj(nil, secret, output)
mustWriteObj(&secret.TypeMeta, secret, output)
Copy link
Member Author

@mathetake mathetake Oct 8, 2025

Choose a reason for hiding this comment

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

a bug somehow surfaced with the upgrade

Comment on lines -628 to -631
kind, ok := resource.GetStructValue().Fields["kind"]
if !ok || kind.GetStringValue() != "HTTPRoute" {
continue
}
Copy link
Member Author

Choose a reason for hiding this comment

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

also a bug that surfaced with the upgrade

Copy link

Choose a reason for hiding this comment

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

@zirain this relates to envoyproxy/gateway#7128 (comment), can you help triage this

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah won't be an issue for us but sure I think it's a regression on EG side

Copy link
Member

Choose a reason for hiding this comment

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

@mathetake can you raise an issue in EG?

Copy link

Choose a reason for hiding this comment

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

Copy link
Member

@zirain zirain Oct 11, 2025

Choose a reason for hiding this comment

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

@mathetake this might due to kubernetes-sigs/controller-runtime#3229.

it's not from EG side but controller-time.

The fakeclient currently differs from the liveclient in that if a
structured object is created that has typemeta set, it will retain that.
In contrast to that, the liveclient always strips it.

This change makes the fakeclient strip it just like the live client.

@mathetake mathetake changed the title deps: upgrade EG deps: upgrade EG Go dependency Oct 8, 2025
Copy link
Member

@nacx nacx left a comment

Choose a reason for hiding this comment

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

Nice!

@mathetake mathetake merged commit f752c57 into main Oct 8, 2025
47 checks passed
@mathetake mathetake deleted the depsupgrade2 branch October 8, 2025 21:01
@codefromthecrypt
Copy link
Contributor

EXCELLENT: so this has the fix @nacx made which was very important. func-e inside EG creates an implicit admin server on demand when there is no fixed port one in the yaml. Before, the EG code was broken in how it passed args to cmd Exec (space encoding arg/value in the args slice which is odd worked at all). I can tell by running with --debug on the latest docker image that this bug is now fixed. Not only can you tell the admin server, but it is used to check status of the child process.

aigw         | time=2025-10-09T00:37:55.526Z level=INFO msg="Discovered Envoy admin adminPort" envoyAdminPort=34703
--snip--
aigw         | time=2025-10-09T00:37:59.530Z level=INFO msg="Waiting for Envoy to be ready..." err="unexpected status code: 503"
--snip--
aigw         | [2025-10-09 00:38:11.529][21][debug][http] [source/common/http/conn_manager_impl.cc:2031] [Tags: "ConnectionId":"8","StreamId":"16872216129129905875"] Codec completed encoding stream.
aigw         | time=2025-10-09T00:38:11.529Z level=INFO msg="Envoy is ready!"

nutanix-Hrushikesh pushed a commit to nutanix-Hrushikesh/ai-gateway that referenced this pull request Oct 16, 2025
**Description**

This upgrades the Envoy Gateway dependency to the latest main branch
commit. Note that the Go level EG dependency is essentially **only used
in aigw run** standalone mode. That is because in the k8s environment,
the only code path where we use EG is to generate EG configurations,
hence the data structures/control plane/extension server gRPC API which
we should assume is stable. Moreover, we still have the e2e test with
v1.5, so by no means this implies AIGW main branch cannot work with
v1.5. On the other hand, this brings a lot of bug fixes and enhancement
to the standalone mode.

---------

Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Hrushikesh Patil <[email protected]>
nutanix-Hrushikesh pushed a commit to nutanix-Hrushikesh/ai-gateway that referenced this pull request Oct 16, 2025
**Description**

This upgrades the Envoy Gateway dependency to the latest main branch
commit. Note that the Go level EG dependency is essentially **only used
in aigw run** standalone mode. That is because in the k8s environment,
the only code path where we use EG is to generate EG configurations,
hence the data structures/control plane/extension server gRPC API which
we should assume is stable. Moreover, we still have the e2e test with
v1.5, so by no means this implies AIGW main branch cannot work with
v1.5. On the other hand, this brings a lot of bug fixes and enhancement
to the standalone mode.

---------

Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Hrushikesh Patil <[email protected]>
nutanix-Hrushikesh pushed a commit to nutanix-Hrushikesh/ai-gateway that referenced this pull request Oct 16, 2025
**Description**

This upgrades the Envoy Gateway dependency to the latest main branch
commit. Note that the Go level EG dependency is essentially **only used
in aigw run** standalone mode. That is because in the k8s environment,
the only code path where we use EG is to generate EG configurations,
hence the data structures/control plane/extension server gRPC API which
we should assume is stable. Moreover, we still have the e2e test with
v1.5, so by no means this implies AIGW main branch cannot work with
v1.5. On the other hand, this brings a lot of bug fixes and enhancement
to the standalone mode.

---------

Signed-off-by: Takeshi Yoneda <[email protected]>
Signed-off-by: Hrushikesh Patil <[email protected]>
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.

8 participants