Repository navigation
feat: move the Noma custom line to upstream v1.103.0 #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
giladops
wants to merge
54
commits into
main
Choose a base branch
from
v1.103.0-custom
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
54 commits
Select commit
Hold shift + click to select a range
1557e2d
Use auth key name if there are no app id in in headers or in extra_data
idola9 0fa67ac
use key alias instead of key name
idola9 52cdc5f
Fix
idola9 10dfe0b
last priority key alias
idola9 8944b7f
Fix
idola9 a3e8623
Merge pull request #4 from Noma-Security/feature/litellm-key-name-to-…
idola9 646827a
Add tests
idola9 3e55144
Merge pull request #5 from Noma-Security/feature/litellm-key-name-to-…
idola9 925777a
Merge branch 'BerriAI:main' into main
idola9 9d1f9c2
Merge branch 'BerriAI:main' into main
idola9 4a4813d
Merge branch 'BerriAI:main' into main
omriShukrun08 adad736
Merge branch 'BerriAI:main' into main
TomAlon 9771c2d
Merge branch 'BerriAI:main' into main
TomAlon 6b15685
Merge branch 'BerriAI:main' into main
itaimodi 1b3e60a
Merge branch 'BerriAI:main' into main
itaimodi 9f79a59
test(mcp): migrate the mcp test helpers to the mcp 2.x MCPServer API
yuneng-berri dcd6e0d
test(logging): add autorouter estimate keys to the GCS pub/sub spend-…
yuneng-berri 840f033
Merge pull request #42075 from BerriAI/litellm_rc_1_103_0_mcp2_test_h…
yuneng-berri cc44919
Merge pull request #42076 from BerriAI/litellm_rc_1_103_0_gcs_autorou…
yuneng-berri 379d256
test(batches): skip the Bedrock GovCloud batch e2e until its secrets …
yuneng-berri ccf5e8c
Merge pull request #42081 from BerriAI/litellm_skip_bedrock_govcloud_…
yuneng-berri 4a00468
fix(bedrock): stream /v1/messages Invoke bytes through instead of hol…
devin-ai-integration[bot] 116becb
fix(redis): count pool wait timeouts as breaker timeouts
mateo-berri 6344fb5
fix(caching): keep an open Redis circuit breaker quiet on the sync re…
mateo-berri 5db2a86
fix(redis): log a timeout streak once per interval instead of one lin…
yassin-berriai 3ce17a5
fix(proxy): give spend_counter_cache its own 10000-entry in-memory cache
kerry-berri 14f97d3
fix(otel): lift component/platform before excluding requester_metadata
giladops 1000cb8
fix(bedrock): never forward toolSpec.strict to Converse
giladops 10897d3
Merge pull request #17 from Noma-Security/v1.102.0-custom
omerbd21-noma ed9ae4f
Merge pull request #42658 from BerriAI/litellm_backport_42607_rc_1_103_0
mateo-berri 90c1873
ci: add workflow to build the Noma litellm custom image
omerbd21-noma ad59de5
Merge pull request #18 from Noma-Security/ci/noma-build-custom-image
omerbd21-noma d77daae
ci: run custom-image build on github-hosted runner + QEMU
omerbd21-noma a6449a3
Merge pull request #19 from Noma-Security/ci/build-custom-hosted
omerbd21-noma a78a439
revert(usage): remove the top-N aggregated key cap and daily global s…
yuneng-berri 4d08789
fix(proxy): pass team member spend rows as jsonb so a $0 flush cannot…
yuneng-berri 6397b36
fix: backport five regression fixes to rc/1.103.0 (#43331)
yuneng-berri 6bfc987
chore: update Next.js build artifacts (2026-09-26 18:18 UTC, node v24…
yuneng-berri 6076c0a
fix(jwt,otel): backport session conversation id and JWT team header s…
yuneng-berri 10e77ce
fix(caching): stand default cache points down when extra_body hides a…
yuneng-berri e640c0e
test(integration): make rc/1.103.0 integration groups collect and pas…
yuneng-berri 8aca86a
test(e2e): clear the two rc/1.103.0 e2e reds owned by upstream provid…
yuneng-berri 4dbbe6e
test(ci): fix the e2e and integration reds left on rc/1.103.0 after #…
yuneng-berri cc111d1
fix(streaming): backport text-completion usage fix and e2e provider-f…
yuneng-berri c991f4b
fix(proxy): unregister logging callbacks removed from the stored conf…
yuneng-berri 8d53d62
fix(otel): lift component/platform before excluding requester_metadata
giladops 4a02bc8
fix(bedrock): never forward toolSpec.strict to Converse
giladops 208017e
ci: add workflow to build the Noma litellm custom image
omerbd21-noma 0c1a152
ci: run custom-image build on github-hosted runner + QEMU
omerbd21-noma 296c100
fix(proxy): give spend_counter_cache its own 10000-entry in-memory cache
kerry-berri e43d8ef
fix(bedrock): parse OpenAI-format Invoke responses instead of Titan's
giladops 07dd8c3
test(bedrock): drop upstream tests that expect toolSpec.strict to be …
giladops bc47532
Merge origin/main into v1.103.0-custom (keep 1.103.0 tree)
giladops 6f1b150
fix(caching): close evicted clients instead of leaving them to the GC
niryaakov File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,99 @@ | ||
| name: Noma - Build custom image | ||
|
|
||
| # Builds the Noma litellm proxy image and pushes it to ECR tagged with the | ||
| # branch name (e.g. v1.102.0-custom). Replaces the previous manual | ||
| # `docker buildx ... --push` step. Deploy is still a separate values bump + | ||
| # canary — this workflow only builds/pushes, it does NOT sync ArgoCD. | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - "v*-custom" # v1.102.0-custom, v1.99.x-custom, ... | ||
| workflow_dispatch: | ||
| inputs: | ||
| ref: | ||
| description: "Branch/tag to build (defaults to the branch this is run from)" | ||
| required: false | ||
| type: string | ||
|
|
||
| concurrency: | ||
| group: noma-build-custom-${{ inputs.ref || github.ref_name }} | ||
| cancel-in-progress: false | ||
|
|
||
| permissions: | ||
| contents: read | ||
| id-token: write # OIDC -> AWS role | ||
|
|
||
| jobs: | ||
| build: | ||
| runs-on: ubuntu-latest | ||
| environment: prod | ||
| env: | ||
| AWS_REGION: us-east-1 | ||
| AWS_ACCOUNT_ID: "381491951875" | ||
| IMAGE_NAME: litellm | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| ref: ${{ inputs.ref || github.ref_name }} | ||
| fetch-depth: 0 | ||
| persist-credentials: false | ||
|
|
||
| - name: Resolve image tag (branch/tag name) | ||
| id: tag | ||
| shell: bash | ||
| run: echo "value=${{ inputs.ref || github.ref_name }}" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - name: Set up QEMU (arm64 emulation on the GitHub-hosted runner) | ||
| uses: docker/setup-qemu-action@v3 | ||
|
|
||
| - name: Set up Docker Buildx | ||
| uses: docker/setup-buildx-action@v4 | ||
|
|
||
| - name: Configure AWS credentials (OIDC) | ||
| uses: aws-actions/configure-aws-credentials@v6 | ||
| with: | ||
| role-to-assume: arn:aws:iam::381491951875:role/github-actions-region-deploy | ||
| aws-region: ${{ env.AWS_REGION }} | ||
|
|
||
| - name: Login to Amazon ECR | ||
| uses: docker/login-action@v4 | ||
| with: | ||
| registry: ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com | ||
| username: AWS | ||
|
|
||
| - name: Build args | ||
| id: vars | ||
| shell: bash | ||
| run: | | ||
| echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT" | ||
| echo "build_time=$(date '+%Y-%m-%dT%H:%M:%S')" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - name: Build and push (multi-arch) | ||
| env: | ||
| REGISTRY: ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com | ||
| TAG: ${{ steps.tag.outputs.value }} | ||
| SHA_SHORT: ${{ steps.vars.outputs.sha_short }} | ||
| BUILD_TIME: ${{ steps.vars.outputs.build_time }} | ||
| shell: bash | ||
| run: | | ||
| docker buildx build \ | ||
| --push \ | ||
| --platform linux/amd64,linux/arm64 \ | ||
| --file docker/Dockerfile.non_root \ | ||
| --tag "$REGISTRY/$IMAGE_NAME:$TAG" \ | ||
| --tag "$REGISTRY/$IMAGE_NAME:$TAG-$SHA_SHORT" \ | ||
| --build-arg GIT_VERSION_TAG="$TAG" \ | ||
| --build-arg GIT_VERSION_HASH="$SHA_SHORT" \ | ||
| --build-arg BUILD_TIME="$BUILD_TIME" \ | ||
| --cache-from type=registry,ref="$REGISTRY/$IMAGE_NAME:cache-custom" \ | ||
| --cache-to type=registry,mode=max,image-manifest=true,oci-mediatypes=true,ref="$REGISTRY/$IMAGE_NAME:cache-custom" \ | ||
| . | ||
|
|
||
| - name: Summary | ||
| shell: bash | ||
| run: | | ||
| echo "### Pushed \`$IMAGE_NAME:${{ steps.tag.outputs.value }}\`" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "Registry: ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com" >> "$GITHUB_STEP_SUMMARY" | ||
| echo "Next: bump the tag in argo-cd/charts values-litellm.yaml and canary." >> "$GITHUB_STEP_SUMMARY" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Closed loops drop closable clients
Medium Severity
loop_refis stored for every eviction, including sync clients that do not need a loop._drop_buckets_of_closed_loops_lockedthen discards an entire bucket when the first entry's loop is gone, so_CLOSABLE_ANYWHEREclients are dropped withoutclose(). Sync handlers queued from a worker loop that later ends keep their pools until GC, which is the leak this change is meant to stop.Additional Locations (2)
litellm/caching/evicted_client_closer.py#L251-L256litellm/caching/evicted_client_closer.py#L97-L102Reviewed by Cursor Bugbot for commit 6f1b150. Configure here.