Skip to content

helm chart updates#2736

Merged
akshaydeo merged 1 commit intomainfrom
04-15-helm_chart_updates
Apr 15, 2026
Merged

helm chart updates#2736
akshaydeo merged 1 commit intomainfrom
04-15-helm_chart_updates

Conversation

@akshaydeo
Copy link
Copy Markdown
Contributor

@akshaydeo akshaydeo commented Apr 15, 2026

Summary

Bumps Bifrost Helm chart to version 2.1.0-prerelease2 with schema synchronization and configuration improvements. This release aligns the Helm values schema with the transport config schema, fixing virtual key and budget configuration drift while adding support for new features like object storage and WebSocket tuning.

Changes

  • Chart Version: Updated from 2.0.18 to 2.1.0-prerelease2
  • Schema Synchronization: Fixed drift between Helm values.schema.json and transport config.schema.json
    • Removed incorrect required: [mcp_client_id] constraint on virtual key MCP configs
    • Added mcp_client_name as alternative to mcp_client_id for config-file format
    • Moved calendar_aligned from budget level to virtual key level
    • Removed stale budget_id field from virtual keys
  • Object Storage Support: Added S3/GCS backend configuration for log payload offloading
  • WebSocket Configuration: Added comprehensive tuning options for WebSocket gateway
  • Client Compatibility: Replaced enableLitellmFallbacks with structured compat configuration
  • MCP Enhancements: Added secret reference support for connection strings and improved template rendering
  • Template Improvements: Enhanced _helpers.tpl with better property mapping and validation

Type of change

  • Feature
  • Refactor
  • Documentation

Affected areas

  • Providers/Integrations
  • Plugins
  • Docs

How to test

Validate the Helm chart upgrade and new configurations:

# Validate chart syntax and schema
helm lint helm-charts/bifrost/
helm template test helm-charts/bifrost/ --values helm-charts/bifrost/values-examples/providers-and-virtual-keys.yaml

# Test object storage configuration
helm template test helm-charts/bifrost/ --set storage.logsStore.objectStorage.enabled=true \
  --set storage.logsStore.objectStorage.type=s3 \
  --set storage.logsStore.objectStorage.bucket=test-bucket

# Test MCP secret references
helm template test helm-charts/bifrost/ --set bifrost.mcp.enabled=true \
  --set bifrost.mcp.clientConfigs[0].name=test-client \
  --set bifrost.mcp.clientConfigs[0].secretRef.name=mcp-secret

# Verify schema validation
helm template test helm-charts/bifrost/ --validate

New configurations added:

  • storage.logsStore.objectStorage.* - Object storage for log payloads
  • bifrost.websocket.* - WebSocket gateway tuning
  • bifrost.client.compat.* - Client compatibility settings
  • bifrost.mcp.clientConfigs[].secretRef - MCP connection string secrets

Breaking changes

  • Yes

Impact: The enableLitellmFallbacks client configuration has been replaced with a structured compat object. Users with existing configurations need to migrate:

Migration:

# Old format
bifrost:
  client:
    enableLitellmFallbacks: true

# New format  
bifrost:
  client:
    compat:
      convertTextToChat: true
      convertChatToResponses: false
      shouldDropParams: false
      shouldConvertParams: false

Related issues

Part of ongoing Helm chart maintenance and schema alignment efforts.

Security considerations

  • Object storage credentials can be injected via Kubernetes secrets using existingSecret references
  • MCP connection strings support secret references to avoid exposing sensitive URLs in values
  • All credential fields support environment variable substitution with env. prefix

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@akshaydeo akshaydeo marked this pull request as ready for review April 15, 2026 14:15
@akshaydeo akshaydeo requested a review from a team as a code owner April 15, 2026 14:15
@github-actions
Copy link
Copy Markdown
Contributor

🧪 Test Suite Available

This PR can be tested by a repository admin.

Run tests for PR #2736

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 15, 2026

📝 Walkthrough

Walkthrough

This pull request upgrades the Bifrost Helm chart from version 2.0.18 to 2.1.0-prerelease2, introducing new configuration options for object storage support, MCP client secret handling via Kubernetes secrets, SCIM identity provider migration, encryption key secrets, and expanded governance pricing overrides. The schema and templates are updated to support these new features.

Changes

Cohort / File(s) Summary
Version & Index Updates
helm-charts/bifrost/Chart.yaml, helm-charts/index.yaml
Updated Bifrost chart version to 2.1.0-prerelease2; updated Helm repository index with new chart release and timestamp.
Documentation
helm-charts/bifrost/README.md
Updated changelog and version references; documented schema/transport synchronization changes, MCP client name field, removal of required mcp_client_id constraint, virtual key-level calendar_aligned field, Kubernetes secret references in MCP headers, and OpenTelemetry trace_type updates.
Template Helpers & Deployment Config
helm-charts/bifrost/templates/_helpers.tpl, helm-charts/bifrost/templates/deployment.yaml, helm-charts/bifrost/templates/stateful.yaml
Added conditional config building for compat object, MCP routing/tool injection, large payload optimization, websocket settings, pricing overrides, and object storage; switched identity from SAML to SCIM; added environment variable injection for S3/GCS credentials and MCP client connection strings sourced from Kubernetes secrets.
Values Schema & Defaults
helm-charts/bifrost/values.schema.json, helm-charts/bifrost/values.yaml
Added encryption key secret reference, replaced enableLitellmFallbacks with compat object, extended MCP config with secret references and tool injection controls, expanded OTEL trace type enum, updated governance schema with pricing overrides and virtual key changes, migrated SAML to SCIM configuration, added object storage and websocket tuning sections.
Configuration Examples
helm-charts/bifrost/values-examples/providers-and-virtual-keys.yaml, helm-charts/bifrost/values-examples/secrets-from-k8s.yaml
Updated example provider keys to explicitly set models: ["*"] for all entries; added name field to provider key items for clearer configuration structure.
Transport Config Schema
transports/config.schema.json
Added top-level version control for empty allow-list interpretation; replaced enable_litellm_fallbacks with compat object; extended MCP and client routing controls; refactored governance schema with pricing overrides, budget/virtual key separation, and provider_config_id field; added object storage and retention for logs store; migrated SAML to SCIM with updated auth requirements; refactored provider key schemas; added new providers (Nebius, XAI, Runway, Replicate, Ollama, SGL); expanded plugin placement and OTEL trace options.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 The schema grows with secrets tucked away,
SCIM replaces SAML's old sway,
Objects store the logs so fair,
MCP clients auth with newfound care,
Pricing rules now override the day! 🌟

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The linked issue #123 requests File APIs support for providers, but the changeset contains only Helm chart configuration updates with no File API implementation or provider-level changes. The PR should either implement File API support as described in issue #123 or remove the issue link if this PR only addresses Helm chart maintenance.
Description check ⚠️ Warning The PR description is entirely a template scaffold with no concrete content filled in. All sections remain as placeholders without actual summary, changes, type of change selection, affected areas, testing steps, or any substantive information. Complete the PR description by filling in: (1) Summary explaining the purpose and problem solved; (2) Changes section with specific modifications and rationale; (3) Type of change checkbox; (4) Affected areas checkbox; (5) Actual testing steps and validation procedures; (6) Breaking changes status; (7) Related issues if applicable; (8) Security considerations for the Helm chart changes; and (9) Checklist confirmations.
Title check ❓ Inconclusive The title 'helm chart updates' is vague and overly generic, using non-descriptive language that doesn't convey the specific changes or version bump. Use a more specific title such as 'Bump Bifrost Helm chart to 2.1.0-prerelease2 with schema synchronization' to clearly indicate the primary change.
✅ Passed checks (2 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed The PR contains only Helm chart updates (values, schema, templates, examples, and documentation) which align with the stated objectives of schema synchronization, configuration improvements, and version bumping.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 04-15-helm_chart_updates

Warning

Review ran into problems

🔥 Problems

Timed out fetching pipeline failures after 30000ms


Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 15, 2026

Confidence Score: 3/5

The schema changes are correct but the template rendering was not updated to match, meaning the advertised calendar_aligned feature is broken and stale budget_id may cause startup failures.

Two P1 bugs in _helpers.tpl: calendar_aligned silently dropped from rendered virtual key config, and budget_id still emitted despite being removed from the schema. These directly affect the correctness of the generated config.json for users relying on the new feature.

helm-charts/bifrost/templates/_helpers.tpl (virtual key rendering loop, lines 354–368)

Important Files Changed

Filename Overview
helm-charts/bifrost/templates/_helpers.tpl Virtual key rendering loop: calendar_aligned (new schema field) is never emitted into the config dict, and budget_id (removed from schema) is still emitted — two mismatches between schema and template logic.
helm-charts/bifrost/values.schema.json Schema correctly synced: calendar_aligned added to virtualKeys[], budget_id removed from virtualKeys[], mcp_client_name added and required constraint on mcp_client_id dropped from mcp_configs items.
helm-charts/bifrost/values.yaml Values file is updated; stale budget_id reference remains in the virtualKeys example comment at line 475, inconsistent with the schema change.
transports/config.schema.json Canonical transport schema correctly has calendar_aligned on virtual_keys (not on budgets), no budget_id on virtual_keys, and mcp_client_name alongside mcp_client_id with no required constraint.
helm-charts/index.yaml New entry for 2.1.0-prerelease2 added; digest field is empty (consistent with recent entries in this repo), and generated timestamp is 2026-04-13 while the new entry is dated 2026-04-15 — minor inconsistency.
helm-charts/bifrost/Chart.yaml Chart version bumped to 2.1.0-prerelease2; appVersion matches 1.4.11.
helm-charts/bifrost/templates/deployment.yaml No changes to template logic for this PR; deployment template is correct and consistent with the stateful.yaml counterpart.
helm-charts/bifrost/templates/stateful.yaml No changes to template logic for this PR; StatefulSet template mirrors deployment.yaml correctly.
helm-charts/bifrost/values-examples/providers-and-virtual-keys.yaml Example file looks correct; governance budgets, rate limits, and virtual keys are consistent with the updated schema.
helm-charts/bifrost/values-examples/secrets-from-k8s.yaml Secrets example file unchanged and valid.

Comments Outside Diff (3)

  1. helm-charts/bifrost/templates/_helpers.tpl, line 354-368 (link)

    P1 calendar_aligned silently dropped from rendered virtual key config

    calendar_aligned was added to the helm schema for virtualKeys[] items, but the template loop that builds each virtual key dict (lines 357–365) never sets it. Any user who sets calendar_aligned: true on a virtual key will have the field silently absent from the generated config.json, so the budget-reset-snapping feature will never take effect even though the schema advertises support for it.

    Add the missing line after the rate_limit_id block:

  2. helm-charts/bifrost/templates/_helpers.tpl, line 362 (link)

    P1 Stale budget_id still rendered on virtual keys

    This PR removes budget_id from the virtualKeys[] schema because TableVirtualKey has no BudgetID field and the canonical transports/config.schema.json (which has additionalProperties: false) no longer declares it. However, this template line still emits budget_id into the rendered config.json if the user had it set. Any Bifrost instance that validates config strictly against the canonical schema will fail to start when it sees an undeclared field on a virtual key.

  3. helm-charts/bifrost/values.yaml, line 475 (link)

    P2 Stale budget_id comment contradicts the schema change

    This PR removes budget_id from virtualKeys[] in both schemas, but the example comment here still shows it as a valid field. A user reading this comment and copying it to their values will set a field that is no longer in the schema, which may cause unexpected behavior.

Reviews (1): Last reviewed commit: "helm chart updates" | Re-trigger Greptile

@akshaydeo akshaydeo merged commit f2005ef into main Apr 15, 2026
17 of 20 checks passed
@akshaydeo akshaydeo deleted the 04-15-helm_chart_updates branch April 15, 2026 14:25
@coderabbitai coderabbitai Bot mentioned this pull request Apr 15, 2026
18 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants