Skip to content

Commit f2d59a6

Browse files
aabchoomissBergclaude
authored
release: v0.7.0 release notes (#2177)
**Description** New Features Multi-Tenant Hostname Routing - AIGatewayRoute gains a hostnames field enabling hostname-based model scoping — serve different model catalogs per tenant from a single Gateway - /v1/models automatically scopes its response to models matching the request's Host header - Wildcard hostnames (*.ai.example.com) supported via Gateway API hostname matching rules Provider Translation - Anthropic → AWS Bedrock Converse — new translator path lets Anthropic-native clients reach Bedrock without switching protocols (text, images, tool use, thinking, streaming) - Anthropic → OpenAI reasoning & image support — thinking/reasoning blocks and image content no longer silently dropped during translation - Claude Opus 4.7 reasoning — display parameter (summarized/omitted), xhigh effort tier, and claude-mythos-preview model recognition - Anthropic prefix support — VersionedAPISchema.prefix now works for Anthropic backends (e.g., /{prefix}/messages) - anthropic-beta header forwarding — mapped into anthropic_beta body field for AWSAnthropic backends OpenAI API Compatibility - Audio transcription & translation — full data-plane support for /v1/audio/transcriptions and /v1/audio/translations (Whisper endpoints, multipart/form-data) - Azure OpenAI Responses API — /v1/responses routes to Azure's /openai/responses?api-version=... path - audio_url and video_url content types — multimodal audio/video inputs for compatible backends (vLLM, phi-4-mm, Qwen 3.5) Quota-Aware Routing - Backend rate limit filter injection for QuotaPolicy — first runtime enforcement: controller injects a backend rate limit filter when a QuotaPolicy is attached to an AIServiceBackend MCP Gateway - Authorization-filtered tools/list — omits tools the caller isn't authorized to invoke, preventing tool discovery leaks Observability - Smarter log redaction — developer-authored metadata (tool descriptions, function names, JSON schemas) visible in debug logs; user content and AI-generated text remain redacted API Changes - AIGatewayRoute.spec.hostnames — new optional field for hostname-based request filtering - AIGatewayRoute.spec.rules capped at 15 (down from 128) to match Gateway API HTTPRoute limits - VersionedAPISchema.prefix extended to Anthropic backends - QuotaPolicy now has runtime enforcement (backend rate limit filter injection) Bug Fixes - SSE parser handles data:{json} (no space after colon) - Responses API streaming: buffer incomplete SSE events across response body chunks - Responses API: capture token usage from response.incomplete and response.failed events - Nil-pointer guard in AWS Bedrock response translator (HTTP 200 with no output field) - Comprehensive Gemini finish-reason mapping (previously everything fell through to content_filter) - GCP Vertex AI streaming: emit empty delta object instead of omitting it - Responses API: handle typeless assistant output messages (e.g., from OpenCode) Docs - Proposal: MCPBackend CRD (#2144) - Proposal: OAuth 2.0 Token Exchange as Upstream Auth for MCP Backends (#2052) CI - contents:write permission declared on Release workflow's release job (#2139) --------- Signed-off-by: achoo30 <achoo30@bloomberg.net> Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com> Co-authored-by: Erica Hughberg <erica.sundberg.90@gmail.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 445deb8 commit f2d59a6

71 files changed

Lines changed: 17586 additions & 355 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/commands/release-notes

Lines changed: 638 additions & 0 deletions
Large diffs are not rendered by default.

.envoy-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.37.0
1+
1.38.1

.github/workflows/build_and_test.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@ jobs:
212212
include:
213213
- name: latest
214214
envoy_gateway_version: v0.0.0-latest
215-
- name: v1.6.2
216-
envoy_gateway_version: v1.6.2
215+
- name: v1.8.1
216+
envoy_gateway_version: v1.8.1
217217
steps:
218218
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
219219
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v5
@@ -270,7 +270,7 @@ jobs:
270270
- run: make test-e2e-upgrade
271271
env:
272272
# We only need to test the upgrade from the latest stable version of EG.
273-
EG_VERSION: v1.6.0
273+
EG_VERSION: v1.8.1
274274
K8S_VERSION: ${{ matrix.k8s-version }}
275275

276276
test_e2e_inference_extension:
@@ -299,7 +299,7 @@ jobs:
299299
- uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
300300
- run: make test-e2e-inference-extension
301301
env:
302-
EG_VERSION: v1.6.0
302+
EG_VERSION: v1.8.1
303303

304304
test_e2e_namespaced:
305305
needs: changes
@@ -329,7 +329,7 @@ jobs:
329329
env:
330330
# We only need to test with the latest stable version of EG, since these e2e tests
331331
# do not depend on the EG version.
332-
EG_VERSION: v1.6.0
332+
EG_VERSION: v1.8.1
333333

334334
test_e2e_aigw:
335335
needs: changes

RELEASES.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,12 @@ Each non-patch release should start with Release Candidate (RC) phase as follows
8484
Pushing a tag will trigger the pipeline to build the release candidate image and the helm chart tagged with the release candidate tag.
8585
The release candidate image will be available in the Docker Hub.
8686

87-
4. The release candidate should be tested by the maintainers and the community. If there is any issue, the issue should be fixed in the main branch
87+
4. Generate the release notes using the Claude Code `/release-notes` command (defined in `.claude/commands/release-notes`).
88+
This command analyzes commits since the last release, verifies features against the actual code, and generates
89+
the release notes JSON data file, MDX page, plain-markdown copy, and navigation updates for the docs site.
90+
Review the generated output and make any necessary adjustments.
91+
92+
5. The release candidate should be tested by the maintainers and the community. If there is any issue, the issue should be fixed in the main branch
8893
and the new rc tag should be created. For example, if there is an issue in the release candidate v0.50.0-rc1, replace `v0.50.0-rc1` with `v0.50.0-rc2`
8994
in the above command and repeat the process.
9095

cmd/aigw/download_envoy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
// This matches the version in the .envoy-version file at the repo root. That is ensured in tests.
1818
// The reason why we don't use the constant defined in the EG as a library is that when we depend
1919
// on the main branch, it will be a non-released development version that func-e may not have.
20-
const envoyVersion = "1.37.0"
20+
const envoyVersion = "1.38.1"
2121

2222
// downloadEnvoy downloads the Envoy binary used by Envoy Gateway.
2323
func downloadEnvoy(ctx context.Context, funcERun func_e_api.RunFunc, tmpDir, dataHome string, stdout, stderr io.Writer) error {

go.mod

Lines changed: 37 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module github.com/envoyproxy/ai-gateway
22

33
// Explicitly specify the Go patch version to be able to purge the CI cache correctly.
4-
go 1.26.2
4+
go 1.26.4
55

66
require (
77
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.1
@@ -18,10 +18,10 @@ require (
1818
github.com/cenkalti/backoff/v4 v4.3.0
1919
github.com/cohere-ai/cohere-go/v2 v2.18.0
2020
github.com/coreos/go-oidc/v3 v3.18.0
21-
github.com/envoyproxy/gateway v1.7.0
22-
github.com/envoyproxy/go-control-plane v0.14.0
23-
github.com/envoyproxy/go-control-plane/envoy v1.37.0
24-
github.com/envoyproxy/go-control-plane/ratelimit v0.1.1-0.20260131204543-4ca8b9cded3e
21+
github.com/envoyproxy/gateway v1.8.1
22+
github.com/envoyproxy/go-control-plane v0.14.1-0.20260409050421-3f47accd6e14
23+
github.com/envoyproxy/go-control-plane/envoy v1.37.1-0.20260409050421-3f47accd6e14
24+
github.com/envoyproxy/go-control-plane/ratelimit v0.1.1-0.20260409050421-3f47accd6e14
2525
github.com/go-logr/logr v1.4.3
2626
github.com/golang-jwt/jwt/v5 v5.3.1
2727
github.com/google/cel-go v0.28.1
@@ -53,7 +53,7 @@ require (
5353
go.opentelemetry.io/proto/otlp v1.10.0
5454
go.uber.org/goleak v1.3.0
5555
go.uber.org/zap v1.28.0
56-
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93
56+
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f
5757
golang.org/x/oauth2 v0.36.0
5858
golang.org/x/sync v0.20.0
5959
golang.org/x/tools v0.45.0
@@ -70,8 +70,9 @@ require (
7070
k8s.io/client-go v0.36.1
7171
k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2
7272
sigs.k8s.io/controller-runtime v0.24.1
73-
sigs.k8s.io/gateway-api v1.4.1
73+
sigs.k8s.io/gateway-api v1.5.1
7474
sigs.k8s.io/gateway-api-inference-extension v1.0.2
75+
sigs.k8s.io/gateway-api/conformance v1.5.1
7576
sigs.k8s.io/yaml v1.6.0
7677
)
7778

@@ -114,26 +115,25 @@ require (
114115
github.com/containerd/errdefs/pkg v0.3.0 // indirect
115116
github.com/containerd/log v0.1.0 // indirect
116117
github.com/containerd/platforms v0.2.1 // indirect
117-
github.com/containerd/stargz-snapshotter/estargz v0.18.1 // indirect
118+
github.com/containerd/stargz-snapshotter/estargz v0.18.2 // indirect
118119
github.com/containers/image/v5 v5.36.2 // indirect
119120
github.com/containers/storage v1.59.1 // indirect
120121
github.com/coreos/go-semver v0.3.1 // indirect
121122
github.com/coreos/go-systemd/v22 v22.7.0 // indirect
122123
github.com/cpuguy83/dockercfg v0.3.2 // indirect
123124
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
124125
github.com/distribution/reference v0.6.0 // indirect
125-
github.com/docker/cli v29.2.0+incompatible // indirect
126+
github.com/docker/cli v29.4.1+incompatible // indirect
126127
github.com/docker/distribution v2.8.3+incompatible // indirect
127-
github.com/docker/docker v28.5.2+incompatible // indirect
128-
github.com/docker/docker-credential-helpers v0.9.4 // indirect
128+
github.com/docker/docker-credential-helpers v0.9.5 // indirect
129129
github.com/docker/go-connections v0.6.0 // indirect
130130
github.com/docker/go-units v0.5.0 // indirect
131131
github.com/dominikbraun/graph v0.23.0 // indirect
132132
github.com/ebitengine/purego v0.10.0 // indirect
133133
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
134-
github.com/envoyproxy/go-control-plane/contrib v1.36.1-0.20260115164926-066cbd5b3989 // indirect
134+
github.com/envoyproxy/go-control-plane/contrib v1.36.1-0.20260409050421-3f47accd6e14 // indirect
135135
github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect
136-
github.com/envoyproxy/ratelimit v1.4.1-0.20230427142404-e2a87f41d3a7 // indirect
136+
github.com/envoyproxy/ratelimit v1.4.1-0.20260122083618-3fb702589d36 // indirect
137137
github.com/evanphx/json-patch v5.9.11+incompatible // indirect
138138
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
139139
github.com/felixge/httpsnoop v1.0.4 // indirect
@@ -143,25 +143,25 @@ require (
143143
github.com/go-logr/stdr v1.2.2 // indirect
144144
github.com/go-logr/zapr v1.3.0 // indirect
145145
github.com/go-ole/go-ole v1.3.0 // indirect
146-
github.com/go-openapi/analysis v0.24.1 // indirect
147-
github.com/go-openapi/errors v0.22.4 // indirect
148-
github.com/go-openapi/jsonpointer v0.22.4 // indirect
149-
github.com/go-openapi/jsonreference v0.21.4 // indirect
150-
github.com/go-openapi/loads v0.23.2 // indirect
151-
github.com/go-openapi/spec v0.22.3 // indirect
152-
github.com/go-openapi/strfmt v0.25.0 // indirect
146+
github.com/go-openapi/analysis v0.24.3 // indirect
147+
github.com/go-openapi/errors v0.22.7 // indirect
148+
github.com/go-openapi/jsonpointer v0.22.5 // indirect
149+
github.com/go-openapi/jsonreference v0.21.5 // indirect
150+
github.com/go-openapi/loads v0.23.3 // indirect
151+
github.com/go-openapi/spec v0.22.4 // indirect
152+
github.com/go-openapi/strfmt v0.26.1 // indirect
153153
github.com/go-openapi/swag v0.23.1 // indirect
154-
github.com/go-openapi/swag/conv v0.25.4 // indirect
155-
github.com/go-openapi/swag/fileutils v0.25.1 // indirect
156-
github.com/go-openapi/swag/jsonname v0.25.4 // indirect
157-
github.com/go-openapi/swag/jsonutils v0.25.4 // indirect
158-
github.com/go-openapi/swag/loading v0.25.4 // indirect
159-
github.com/go-openapi/swag/mangling v0.25.1 // indirect
160-
github.com/go-openapi/swag/stringutils v0.25.4 // indirect
161-
github.com/go-openapi/swag/typeutils v0.25.4 // indirect
162-
github.com/go-openapi/swag/yamlutils v0.25.4 // indirect
163-
github.com/go-openapi/validate v0.25.1 // indirect
164-
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
154+
github.com/go-openapi/swag/conv v0.25.5 // indirect
155+
github.com/go-openapi/swag/fileutils v0.25.5 // indirect
156+
github.com/go-openapi/swag/jsonname v0.25.5 // indirect
157+
github.com/go-openapi/swag/jsonutils v0.25.5 // indirect
158+
github.com/go-openapi/swag/loading v0.25.5 // indirect
159+
github.com/go-openapi/swag/mangling v0.25.5 // indirect
160+
github.com/go-openapi/swag/stringutils v0.25.5 // indirect
161+
github.com/go-openapi/swag/typeutils v0.25.5 // indirect
162+
github.com/go-openapi/swag/yamlutils v0.25.5 // indirect
163+
github.com/go-openapi/validate v0.25.2 // indirect
164+
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
165165
github.com/gogo/protobuf v1.3.2 // indirect
166166
github.com/golang/protobuf v1.5.4 // indirect
167167
github.com/google/gnostic-models v0.7.0 // indirect
@@ -182,10 +182,9 @@ require (
182182
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
183183
github.com/kylelemons/godebug v1.1.0 // indirect
184184
github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 // indirect
185-
github.com/lyft/gostats v0.4.1 // indirect
185+
github.com/lyft/gostats v0.4.14 // indirect
186186
github.com/magiconair/properties v1.8.10 // indirect
187-
github.com/mailru/easyjson v0.9.0 // indirect
188-
github.com/miekg/dns v1.1.72 // indirect
187+
github.com/mailru/easyjson v0.9.1 // indirect
189188
github.com/mitchellh/go-homedir v1.1.0 // indirect
190189
github.com/moby/docker-image-spec v1.3.1 // indirect
191190
github.com/moby/go-archive v0.2.0 // indirect
@@ -199,8 +198,8 @@ require (
199198
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
200199
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
201200
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
202-
github.com/ohler55/ojg v1.28.0 // indirect
203-
github.com/oklog/ulid v1.3.1 // indirect
201+
github.com/ohler55/ojg v1.28.1 // indirect
202+
github.com/oklog/ulid/v2 v2.1.1 // indirect
204203
github.com/opencontainers/go-digest v1.0.0 // indirect
205204
github.com/opencontainers/image-spec v1.1.1 // indirect
206205
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
@@ -231,12 +230,11 @@ require (
231230
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
232231
github.com/x448/float16 v0.8.4 // indirect
233232
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
234-
github.com/yuin/gopher-lua v1.1.1 // indirect
233+
github.com/yuin/gopher-lua v1.1.2 // indirect
235234
github.com/yusufpapurcu/wmi v1.2.4 // indirect
236235
go.etcd.io/etcd/api/v3 v3.6.8 // indirect
237236
go.etcd.io/etcd/client/pkg/v3 v3.6.8 // indirect
238237
go.etcd.io/etcd/client/v3 v3.6.8 // indirect
239-
go.mongodb.org/mongo-driver v1.17.6 // indirect
240238
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
241239
go.opentelemetry.io/contrib/bridges/prometheus v0.68.0 // indirect
242240
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.67.0 // indirect
@@ -281,7 +279,7 @@ require (
281279
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 // indirect
282280
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
283281
sigs.k8s.io/kubectl-validate v0.0.5-0.20250915070809-d2f2d68fba09 // indirect
284-
sigs.k8s.io/mcs-api v0.3.0 // indirect
282+
sigs.k8s.io/mcs-api v0.4.1 // indirect
285283
sigs.k8s.io/randfill v1.0.0 // indirect
286284
sigs.k8s.io/structured-merge-diff/v6 v6.3.2 // indirect
287285
)

0 commit comments

Comments
 (0)