cli: allow setting the Envoy version in standalone mode#1156
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project status has failed because the head coverage (77.56%) 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 #1156 +/- ##
==========================================
+ Coverage 77.54% 77.56% +0.02%
==========================================
Files 123 123
Lines 15759 15759
==========================================
+ Hits 12220 12224 +4
+ Misses 2911 2906 -5
- Partials 628 629 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
f8e8440 to
1a3c90f
Compare
| sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect | ||
| ) | ||
|
|
||
| replace github.com/envoyproxy/gateway => github.com/nacx/gateway v0.0.0-20250909074754-a7edf6c24f62 |
There was a problem hiding this comment.
This needs to be removed when the EG PR is merged.
3a38a90 to
a0a23f6
Compare
codefromthecrypt
left a comment
There was a problem hiding this comment.
I like this in general. I think it will be easier now that there's no default config as you can just edit the template and use ENVOY_VERSION (similar to existing stuff for openai) or the arg you mentioned.
|
i can't think of the situation where users want to use a specific stable version of Envoy as our impls will anyways be tied with one or two version. What do you all think about simply not exposing it but just internally specifying the stable version we want to run with? |
|
iow i think it's an implementation detail in at least aigw run? |
|
I think it would be nice to have the ability to update. we can use the "last known envoy" approach like func-e to pin the version so that it is the same as what is in the Docker build, but also allow it to be overridden. We would do a test like func-e that proves the last known is up to date. so, in |
|
sg |
Signed-off-by: Ignasi Barrera <ignasi@tetrate.io>
|
I've rebased the PR and updated it to use the |
| // Print a status message without any timestamp formatting | ||
| startDuration := time.Since(start).Round(100 * time.Millisecond) | ||
| _, _ = fmt.Fprintf(stderr, "Envoy AI Gateway listening on http://localhost:%d (admin http://localhost:%d) after %v\n", listenerPort, envoyAdmin.Port(), startDuration) | ||
| if err = pollEnvoyReady(ctx, debugLogger, envoyAdmin, 2*time.Second); err != nil { |
There was a problem hiding this comment.
This is a small side change I spotted, to avoid printing "envoy ready" if users cancel (Ctrl^C) the process while the polling was ongoing.
Signed-off-by: Ignasi Barrera <ignasi@tetrate.io>
|
Failing tests are fixed in #1326 |
codefromthecrypt
left a comment
There was a problem hiding this comment.
Sounds fine for locking down envoy version in a file config. Be careful of require.Xx in test cleanup or eventually as i think both patterns are easy to make bugs (speaking from experience making them)
| envoyAdmin, err := aigw.NewEnvoyAdminClient(ctx, os.Getpid(), adminPort) | ||
| require.NoError(t, err) | ||
| pollEnvoyReady(ctx, l, envoyAdmin, 50*time.Millisecond) | ||
| require.ErrorIs(t, pollEnvoyReady(ctx, l, envoyAdmin, 50*time.Millisecond), context.DeadlineExceeded) |
There was a problem hiding this comment.
Be careful as if i am reading correctly this is now using require in an t.cleanup which is sadly something the linter wont pick up but iiuc will exit the runtime
|
Ps unless we want to persist this to a file, there will be a simpler way in a pending change to func-e. We might consider not shipping this I mean as there will be another way to set the same thing and also align it by default to the docker baked version. |
) **Description** Allow configuring the version of Envoy to use when running in standalone mode with `aigw run`: ``` $ ./out/aigw-darwin-arm64 run --envoy-version 1.35.0 1.35.0 is already downloaded starting: /tmp/envoy-gateway/versions/1.35.0/bin/envoy in run directory /tmp/envoy-gateway/runs/1756854499474593000 $ ./out/aigw-darwin-arm64 run --envoy-version 1.34.2 downloading https://archive.tetratelabs.io/envoy/download/v1.34.2/envoy-v1.34.2-darwin-arm64.tar.xz starting: /tmp/envoy-gateway/versions/1.34.2/bin/envoy in run directory /tmp/envoy-gateway/runs/1756854634015259000 ``` **Related Issues/PRs (if applicable)** Depends on: envoyproxy/gateway#6891 Keeping it as draft until this PR is merged. **Special notes for reviewers (if applicable)** N/A --------- Signed-off-by: Ignasi Barrera <ignasi@tetrate.io> Signed-off-by: Hrushikesh Patil <hrushikesh.patil@nutanix.com>
) **Description** Allow configuring the version of Envoy to use when running in standalone mode with `aigw run`: ``` $ ./out/aigw-darwin-arm64 run --envoy-version 1.35.0 1.35.0 is already downloaded starting: /tmp/envoy-gateway/versions/1.35.0/bin/envoy in run directory /tmp/envoy-gateway/runs/1756854499474593000 $ ./out/aigw-darwin-arm64 run --envoy-version 1.34.2 downloading https://archive.tetratelabs.io/envoy/download/v1.34.2/envoy-v1.34.2-darwin-arm64.tar.xz starting: /tmp/envoy-gateway/versions/1.34.2/bin/envoy in run directory /tmp/envoy-gateway/runs/1756854634015259000 ``` **Related Issues/PRs (if applicable)** Depends on: envoyproxy/gateway#6891 Keeping it as draft until this PR is merged. **Special notes for reviewers (if applicable)** N/A --------- Signed-off-by: Ignasi Barrera <ignasi@tetrate.io> Signed-off-by: Hrushikesh Patil <hrushikesh.patil@nutanix.com>
) **Description** Allow configuring the version of Envoy to use when running in standalone mode with `aigw run`: ``` $ ./out/aigw-darwin-arm64 run --envoy-version 1.35.0 1.35.0 is already downloaded starting: /tmp/envoy-gateway/versions/1.35.0/bin/envoy in run directory /tmp/envoy-gateway/runs/1756854499474593000 $ ./out/aigw-darwin-arm64 run --envoy-version 1.34.2 downloading https://archive.tetratelabs.io/envoy/download/v1.34.2/envoy-v1.34.2-darwin-arm64.tar.xz starting: /tmp/envoy-gateway/versions/1.34.2/bin/envoy in run directory /tmp/envoy-gateway/runs/1756854634015259000 ``` **Related Issues/PRs (if applicable)** Depends on: envoyproxy/gateway#6891 Keeping it as draft until this PR is merged. **Special notes for reviewers (if applicable)** N/A --------- Signed-off-by: Ignasi Barrera <ignasi@tetrate.io> Signed-off-by: Hrushikesh Patil <hrushikesh.patil@nutanix.com>
) **Description** Allow configuring the version of Envoy to use when running in standalone mode with `aigw run`: ``` $ ./out/aigw-darwin-arm64 run --envoy-version 1.35.0 1.35.0 is already downloaded starting: /tmp/envoy-gateway/versions/1.35.0/bin/envoy in run directory /tmp/envoy-gateway/runs/1756854499474593000 $ ./out/aigw-darwin-arm64 run --envoy-version 1.34.2 downloading https://archive.tetratelabs.io/envoy/download/v1.34.2/envoy-v1.34.2-darwin-arm64.tar.xz starting: /tmp/envoy-gateway/versions/1.34.2/bin/envoy in run directory /tmp/envoy-gateway/runs/1756854634015259000 ``` **Related Issues/PRs (if applicable)** Depends on: envoyproxy/gateway#6891 Keeping it as draft until this PR is merged. **Special notes for reviewers (if applicable)** N/A --------- Signed-off-by: Ignasi Barrera <ignasi@tetrate.io> Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
Description
Allow configuring the version of Envoy to use when running in standalone mode with
aigw run:Related Issues/PRs (if applicable)
Depends on: envoyproxy/gateway#6891
Keeping it as draft until this PR is merged.
Special notes for reviewers (if applicable)
N/A