Skip to content

Commit 55bb744

Browse files
authored
Merge branch 'main' into fix-usage-report
2 parents ec747f6 + 78391c6 commit 55bb744

44 files changed

Lines changed: 1564 additions & 305 deletions

Some content is hidden

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

.github/workflows/docker_build_job.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
3737

3838
- name: Set up QEMU
39-
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0
39+
uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0
4040

4141
- name: Set up Docker buildx
4242
id: buildx

api/v1beta1/mcp_route.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,9 @@ type MCPBackendAPIKey struct {
232232
//
233233
// Either one of Header or QueryParam can be specified to inject the API key.
234234
//
235+
// Note: Embedding credentials in URLs (including query parameters) is generally not recommended because URLs can be exposed in logs
236+
// and intermediary systems; prefer header-based injection when possible.
237+
//
235238
// +kubebuilder:validation:Optional
236239
// +kubebuilder:validation:MinLength=1
237240
// +optional

cmd/aigw/translate.go

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,21 +234,31 @@ func translateCustomResourceObjects(
234234
userDefinedSecretKeys[fmt.Sprintf("%s/%s", s.Namespace, s.Name)] = struct{}{}
235235
}
236236

237+
// Use buffered event channels so that controllers can push gateway sync events without blocking,
238+
// This mirrors the production code at controller/controller.go:128
239+
const eventChanBuffer = 100
237240
bspC := controller.NewBackendSecurityPolicyController(fakeClient, fakeClientSet, logr.FromSlogHandler(logger.Handler()),
238-
make(chan event.GenericEvent), make(chan event.GenericEvent))
241+
make(chan event.GenericEvent, eventChanBuffer), make(chan event.GenericEvent, eventChanBuffer))
239242
aisbC := controller.NewAIServiceBackendController(fakeClient, fakeClientSet, logr.FromSlogHandler(logger.Handler()),
240-
make(chan event.GenericEvent))
243+
make(chan event.GenericEvent, eventChanBuffer))
241244
airC := controller.NewAIGatewayRouteController(fakeClient, fakeClientSet, logr.FromSlogHandler(logger.Handler()),
242-
make(chan event.GenericEvent), "/",
245+
make(chan event.GenericEvent, eventChanBuffer), "/",
243246
)
244247
mcpC := controller.NewMCPRouteController(fakeClient, fakeClientSet, logr.FromSlogHandler(logger.Handler()),
245-
make(chan event.GenericEvent),
248+
make(chan event.GenericEvent, eventChanBuffer),
246249
)
247250
gwC := controller.NewGatewayController(fakeClient, fakeClientSet, logr.FromSlogHandler(logger.Handler()),
248251
"docker.io/envoyproxy/ai-gateway-extproc:latest", "debug", true, func() string {
249252
return "aigw-translate"
250253
}, false,
251254
)
255+
// Pre-create Gateways (without reconciling) before reconciling resources so that
256+
// syncGateways can resolve the parent Gateway via the fake client.
257+
// Otherwise the reconcile would fail with "gateway not found" because the
258+
// Gateway is not yet present in the cache at this point.
259+
for _, gw := range gws {
260+
mustCreate(ctx, fakeClient, gw, logger)
261+
}
252262
// Create and reconcile the custom resources to store the translated objects.
253263
// Note that the order of creation is important as some objects depend on others.
254264
for _, btp := range backendTLSPolicies {
@@ -267,7 +277,7 @@ func translateCustomResourceObjects(
267277
mustCreateAndReconcile(ctx, fakeClient, mcpRoute, mcpC, logger)
268278
}
269279
for _, gw := range gws {
270-
mustCreateAndReconcile(ctx, fakeClient, gw, gwC, logger)
280+
mustReconcile(ctx, gw, gwC, logger)
271281
}
272282

273283
// Now you can retrieve the translated objects from the fake client.
@@ -347,6 +357,16 @@ func mustCreateAndReconcile(
347357
logger *slog.Logger,
348358
) {
349359
mustCreate(ctx, fakeClient, obj, logger)
360+
mustReconcile(ctx, obj, c, logger)
361+
}
362+
363+
// mustReconcile reconciles the object using the provided reconciler.
364+
func mustReconcile(
365+
ctx context.Context,
366+
obj client.Object,
367+
c reconcile.TypedReconciler[reconcile.Request],
368+
logger *slog.Logger,
369+
) {
350370
logger.Info("Fake reconciling", "kind", obj.GetObjectKind().GroupVersionKind().Kind, "name", obj.GetName())
351371
_, err := c.Reconcile(ctx, reconcile.Request{NamespacedName: types.NamespacedName{Namespace: obj.GetNamespace(), Name: obj.GetName()}})
352372
if err != nil {

go.mod

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ require (
99
github.com/a8m/envsubst v1.4.3
1010
github.com/alecthomas/kong v1.15.0
1111
github.com/andybalholm/brotli v1.2.1
12-
github.com/anthropics/anthropic-sdk-go v1.43.0
12+
github.com/anthropics/anthropic-sdk-go v1.46.0
1313
github.com/aws/aws-sdk-go-v2 v1.41.7
1414
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10
15-
github.com/aws/aws-sdk-go-v2/config v1.32.17
15+
github.com/aws/aws-sdk-go-v2/config v1.32.18
1616
github.com/aws/aws-sdk-go-v2/service/sts v1.42.1
1717
github.com/bytedance/sonic v1.15.1
1818
github.com/cenkalti/backoff/v4 v4.3.0
@@ -29,37 +29,37 @@ require (
2929
github.com/google/jsonschema-go v0.4.3
3030
github.com/google/uuid v1.6.0
3131
github.com/moby/moby/api v1.54.2
32-
github.com/modelcontextprotocol/go-sdk v1.6.0
32+
github.com/modelcontextprotocol/go-sdk v1.6.1
3333
github.com/openai/openai-go v1.12.0
34-
github.com/openai/openai-go/v3 v3.35.0
34+
github.com/openai/openai-go/v3 v3.37.0
3535
github.com/prometheus/client_golang v1.23.2
3636
github.com/prometheus/client_model v0.6.2
3737
github.com/prometheus/common v0.67.5
3838
github.com/stretchr/testify v1.11.1
3939
github.com/testcontainers/testcontainers-go v0.42.0
40-
github.com/tetratelabs/func-e v1.5.0
40+
github.com/tetratelabs/func-e v1.6.0
4141
github.com/tidwall/gjson v1.19.0
4242
github.com/tidwall/sjson v1.2.6-0.20251103175603-13f6455cf849
43-
go.opentelemetry.io/contrib/exporters/autoexport v0.68.0
44-
go.opentelemetry.io/contrib/propagators/autoprop v0.68.0
45-
go.opentelemetry.io/otel v1.43.0
46-
go.opentelemetry.io/otel/exporters/prometheus v0.65.0
47-
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.43.0
48-
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.43.0
49-
go.opentelemetry.io/otel/metric v1.43.0
50-
go.opentelemetry.io/otel/sdk v1.43.0
51-
go.opentelemetry.io/otel/sdk/metric v1.43.0
52-
go.opentelemetry.io/otel/trace v1.43.0
43+
go.opentelemetry.io/contrib/exporters/autoexport v0.69.0
44+
go.opentelemetry.io/contrib/propagators/autoprop v0.69.0
45+
go.opentelemetry.io/otel v1.44.0
46+
go.opentelemetry.io/otel/exporters/prometheus v0.66.0
47+
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.44.0
48+
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.44.0
49+
go.opentelemetry.io/otel/metric v1.44.0
50+
go.opentelemetry.io/otel/sdk v1.44.0
51+
go.opentelemetry.io/otel/sdk/metric v1.44.0
52+
go.opentelemetry.io/otel/trace v1.44.0
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
5656
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
60-
google.golang.org/api v0.279.0
61-
google.golang.org/genai v1.57.0
62-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4
60+
google.golang.org/api v0.282.0
61+
google.golang.org/genai v1.58.0
62+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa
6363
google.golang.org/grpc v1.81.1
6464
google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af
6565
gopkg.in/dnaeon/go-vcr.v4 v4.0.6
@@ -90,7 +90,7 @@ require (
9090
github.com/NYTimes/gziphandler v1.1.1 // indirect
9191
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
9292
github.com/avast/retry-go/v5 v5.0.0 // indirect
93-
github.com/aws/aws-sdk-go-v2/credentials v1.19.16 // indirect
93+
github.com/aws/aws-sdk-go-v2/credentials v1.19.17 // indirect
9494
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 // indirect
9595
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 // indirect
9696
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 // indirect
@@ -99,7 +99,7 @@ require (
9999
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 // indirect
100100
github.com/aws/aws-sdk-go-v2/service/signin v1.0.11 // indirect
101101
github.com/aws/aws-sdk-go-v2/service/sso v1.30.17 // indirect
102-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.21 // indirect
102+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.0 // indirect
103103
github.com/aws/smithy-go v1.25.1 // indirect
104104
github.com/bahlo/generic-list-go v0.2.0 // indirect
105105
github.com/beorn7/perks v1.0.1 // indirect
@@ -167,12 +167,12 @@ require (
167167
github.com/google/gnostic-models v0.7.0 // indirect
168168
github.com/google/go-containerregistry v0.20.6 // indirect
169169
github.com/google/s2a-go v0.1.9 // indirect
170-
github.com/googleapis/enterprise-certificate-proxy v0.3.15 // indirect
170+
github.com/googleapis/enterprise-certificate-proxy v0.3.16 // indirect
171171
github.com/googleapis/gax-go/v2 v2.22.0 // indirect
172172
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
173173
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 // indirect
174174
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 // indirect
175-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
175+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
176176
github.com/inconshreveable/mousetrap v1.1.0 // indirect
177177
github.com/invopop/jsonschema v0.13.0 // indirect
178178
github.com/josharian/intern v1.0.0 // indirect
@@ -236,37 +236,37 @@ require (
236236
go.etcd.io/etcd/client/pkg/v3 v3.6.8 // indirect
237237
go.etcd.io/etcd/client/v3 v3.6.8 // indirect
238238
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
239-
go.opentelemetry.io/contrib/bridges/prometheus v0.68.0 // indirect
239+
go.opentelemetry.io/contrib/bridges/prometheus v0.69.0 // indirect
240240
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.67.0 // indirect
241241
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 // indirect
242-
go.opentelemetry.io/contrib/propagators/aws v1.43.0 // indirect
243-
go.opentelemetry.io/contrib/propagators/b3 v1.43.0 // indirect
244-
go.opentelemetry.io/contrib/propagators/jaeger v1.43.0 // indirect
245-
go.opentelemetry.io/contrib/propagators/ot v1.43.0 // indirect
246-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0 // indirect
247-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 // indirect
248-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.43.0 // indirect
249-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 // indirect
250-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
251-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect
252-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 // indirect
253-
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.19.0 // indirect
254-
go.opentelemetry.io/otel/log v0.19.0 // indirect
255-
go.opentelemetry.io/otel/sdk/log v0.19.0 // indirect
242+
go.opentelemetry.io/contrib/propagators/aws v1.44.0 // indirect
243+
go.opentelemetry.io/contrib/propagators/b3 v1.44.0 // indirect
244+
go.opentelemetry.io/contrib/propagators/jaeger v1.44.0 // indirect
245+
go.opentelemetry.io/contrib/propagators/ot v1.44.0 // indirect
246+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.20.0 // indirect
247+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.20.0 // indirect
248+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.44.0 // indirect
249+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.44.0 // indirect
250+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 // indirect
251+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0 // indirect
252+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.44.0 // indirect
253+
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.20.0 // indirect
254+
go.opentelemetry.io/otel/log v0.20.0 // indirect
255+
go.opentelemetry.io/otel/sdk/log v0.20.0 // indirect
256256
go.uber.org/multierr v1.11.0 // indirect
257257
go.yaml.in/yaml/v2 v2.4.4 // indirect
258258
go.yaml.in/yaml/v3 v3.0.4 // indirect
259259
go.yaml.in/yaml/v4 v4.0.0-rc.3 // indirect
260260
golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect
261261
golang.org/x/crypto v0.51.0 // indirect
262262
golang.org/x/mod v0.36.0 // indirect
263-
golang.org/x/net v0.54.0 // indirect
264-
golang.org/x/sys v0.44.0 // indirect
263+
golang.org/x/net v0.55.0 // indirect
264+
golang.org/x/sys v0.45.0 // indirect
265265
golang.org/x/term v0.43.0 // indirect
266266
golang.org/x/text v0.37.0 // indirect
267267
golang.org/x/time v0.15.0 // indirect
268268
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
269-
google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d // indirect
269+
google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect
270270
google.golang.org/grpc/security/advancedtls v1.0.0 // indirect
271271
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
272272
gopkg.in/inf.v0 v0.9.1 // indirect

0 commit comments

Comments
 (0)