Update CI build image to 42485dd6111408d43a911a5b1126316ef3151798.#1867
Update CI build image to 42485dd6111408d43a911a5b1126316ef3151798.#1867jmillikin-stripe wants to merge 1 commit intoenvoyproxy:masterfrom
Conversation
c2520e3 to
9bcaa3c
Compare
|
The image build job failed on your master commit. Can you look at that first? |
Looking now. I don't understand why it fails at master but passed the PR checks. |
|
We don't build the image on every PR currently since it takes a lot of resources. Now that we are on Circle I think we potentially could do this on every PR and have it quick exit. Let me look into this. |
9bcaa3c to
c477a2d
Compare
|
@jmillikin-stripe do you mind bumping this to the SHA that built? |
|
Updated to 2beecad, which has the CI and MacOS build fixes. It's still building, though. |
|
Ah ok, thanks. You will need to kick this when it builds. |
c477a2d to
e178298
Compare
|
@jmillikin-stripe I think you might need to push a dummy commit to kick this. |
911c38f to
3cb801d
Compare
|
Pushing a dummy commit didn't help. I can't pull the image from my laptop, did it actually get pushed? |
|
Looks like it did not push: https://hub.docker.com/r/lyft/envoy-build/tags/. Let me try to re-run it. |
|
@jmillikin-stripe I think you exposed a bug in our rebuild process. Right now we only rebuild when files change in certain directories: https://github.com/envoyproxy/envoy/blob/master/ci/build_container/docker_push.sh#L18 I think now you probably need to rebuild when bazel directory changes also? Can you fix that check? That should correctly build a new image when bazel things change also. |
Signed-off-by: John Millikin <jmillikin@stripe.com>
3cb801d to
bb96b40
Compare
|
Closing in favor of #1882 |
…1878) **Description** This commit adds a translator that will convert a request sent to `/anthropic/v1/messages` and `/v1/messages` endpoints for OpenAI schema backends. It does not matter whether the OpenAI schema backend natively supports the endpoint (e.g. vLLM) as translating should be a light/fast enough process. This approach is also more versatile and future-proof than just passing through the Anthropic Message Request to a backend that natively supports it. It also follows the already-existing structure for adding translators, path processor factories, and schema translation. A major example use case would be using AI Gateway to route requests from Claude Code to several AI backends like locally hosted vLLM models with LoRA adapters. NOTE: vLLM is only used for local testing as I do not have access to compute. The intended goal for this PR is to support any OpenAI compatible backend/services using an Anthropic interface. **Related Issues/PRs (if applicable)** Fixes #1372 Fixes #1867 **Special notes for reviewers (if applicable)** Claude Code was used to write most of the tests but were verified. It would also be nice if the maintainers could review the other PR #1843 as some of the Anthropic apischema here can be updated once #1843 is merged. <details> <summary>Functional Test Results</summary> Test for anthropic endpoints for OpenAI schema backends that natively support it: ``` $ curl -v http://localhost:8080/v1/messages -H "Content-Type: application/json" -d '{ "model": "Qwen/Qwen2.5-0.5B-Instruct", "messages": [ {"role": "user", "content": "Say hello!"} ], "max_tokens": 100 }' * Host localhost:8080 was resolved. * IPv6: ::1 * IPv4: 127.0.0.1 * Trying [::1]:8080... * Connected to localhost (::1) port 8080 > POST /v1/messages HTTP/1.1 > Host: localhost:8080 > User-Agent: curl/8.5.0 > Accept: */* > Content-Type: application/json > Content-Length: 143 > < HTTP/1.1 200 OK < date: Fri, 20 Feb 2026 18:46:04 GMT < server: uvicorn < content-type: application/json < content-length: 331 < * Connection #0 to host localhost left intact {"id":"chatcmpl-36ec5b3d-4273-41e9-966b-ed742f7a93d1","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! How can I assist you today?"}],"model":"Qwen/Qwen2.5-0.5B-Instruct","stop_reason":"end_turn","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":32,"output_tokens":10}} ``` ``` $ curl -v http://localhost:8080/anthropic/v1/messages -H "Content-Type: application/json" -d '{ "model": "Qwen/Qwen2.5-0.5B-Instruct", "messages": [ {"role": "user", "content": "Say hello!"} ], "max_tokens": 100 }' * Host localhost:8080 was resolved. * IPv6: ::1 * IPv4: 127.0.0.1 * Trying [::1]:8080... * Connected to localhost (::1) port 8080 > POST /anthropic/v1/messages HTTP/1.1 > Host: localhost:8080 > User-Agent: curl/8.5.0 > Accept: */* > Content-Type: application/json > Content-Length: 143 > < HTTP/1.1 200 OK < date: Fri, 20 Feb 2026 18:46:44 GMT < server: uvicorn < content-type: application/json < content-length: 331 < * Connection #0 to host localhost left intact {"id":"chatcmpl-f639ff32-4f89-48c5-b5b1-56878e641da6","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! How can I assist you today?"}],"model":"Qwen/Qwen2.5-0.5B-Instruct","stop_reason":"end_turn","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":32,"output_tokens":10}} ``` Port Forward logs ``` $ kubectl port-forward -n envoy-gateway-system svc/$ENVOY_SERVICE 8080:80 Forwarding from 127.0.0.1:8080 -> 10080 Forwarding from [::1]:8080 -> 10080 Handling connection for 8080 Handling connection for 8080 Handling connection for 8080 ``` vLLM Logs (for both requests) ``` (APIServer pid=141923) INFO: Started server process [141923] (APIServer pid=141923) INFO: Waiting for application startup. (APIServer pid=141923) INFO: Application startup complete. (APIServer pid=141923) INFO: 172.18.0.2:46854 - "POST /v1/chat/completions HTTP/1.1" 200 OK (APIServer pid=141923) INFO 02-20 13:46:05 [loggers.py:257] Engine 000: Avg prompt throughput: 3.2 tokens/s, Avg generation throughput: 1.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0% (APIServer pid=141923) INFO 02-20 13:46:15 [loggers.py:257] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0% (APIServer pid=141923) INFO: 172.18.0.2:47216 - "POST /v1/chat/completions HTTP/1.1" 200 OK (APIServer pid=141923) INFO 02-20 13:46:45 [loggers.py:257] Engine 000: Avg prompt throughput: 3.2 tokens/s, Avg generation throughput: 1.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 25.0% (APIServer pid=141923) INFO 02-20 13:46:55 [loggers.py:257] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 25.0% ``` </details> --------- Signed-off-by: Chang Min <changminbark@gmail.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
No description provided.