From 59a28ba5cf49065270190d4ce8c13b2ce3be4116 Mon Sep 17 00:00:00 2001 From: Yuneng Jiang Date: Mon, 3 Aug 2026 14:01:01 -0700 Subject: [PATCH] test(e2e): add the gateway proxy config the suite asserts against tests/e2e/CLAUDE.md documents gateway/ as holding litellm-config.yml, and litellm-auto's README tells operators to read it, but the directory never existed. The config the suite actually needs lived only in the deployment overlay, versioned separately from the tests that depend on it. That split is why an e2e run cannot currently be tied to a commit: the suite pins to a SHA while the proxy it exercises floats, and across the eight retained runs the reported SHA matched the deployed gateway once, drifting 51-73 commits on the rest. Keeping the model list beside the tests lets a run build both halves from one commit. Environment-agnostic by construction: every credential is an os.environ/ indirection, and the cache points at REDIS_HOST/REDIS_PORT rather than a specific endpoint, so the same file works against a bundled Redis or an external one. Verified by rendering the chart with a bundled database and Redis - all eight models resolve and coordination_redis is injected. --- tests/e2e/gateway/litellm-config.yml | 74 ++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 tests/e2e/gateway/litellm-config.yml diff --git a/tests/e2e/gateway/litellm-config.yml b/tests/e2e/gateway/litellm-config.yml new file mode 100644 index 00000000000..ac7e269f901 --- /dev/null +++ b/tests/e2e/gateway/litellm-config.yml @@ -0,0 +1,74 @@ +general_settings: + store_prompts_in_spend_logs: true + forward_client_headers_to_llm_api: false + maximum_spend_logs_retention_period: 3h + maximum_spend_logs_cleanup_cron: 0 1 * * * + proxy_config_reload_interval_seconds: 10 + proxy_budget_rescheduler_min_time: 15 + proxy_budget_rescheduler_max_time: 20 +litellm_settings: + drop_params: true + default_redis_ttl: 20 + json_logs: true + store_audit_logs: true + cache: true + cache_params: + type: redis + host: os.environ/REDIS_HOST + port: os.environ/REDIS_PORT + callbacks: + - datadog + - prometheus + - otel + require_auth_for_metrics_endpoint: false +router_settings: + fallbacks: + - gpt-5.5: + - gpt-5.6-luna + - gpt-5.2 + - claude-haiku-4-5: + - gemini-2.5-flash + - gpt-5.6-luna + routing_strategy: simple-shuffle + num_retries: 3 +model_list: +- model_name: gpt-5.5 + litellm_params: + model: openai/gpt-5.5 + api_key: os.environ/OPENAI_API_KEY +- model_name: gpt-5.6-luna + litellm_params: + model: openai/gpt-5.6-luna + api_key: os.environ/OPENAI_API_KEY +- model_name: gpt-5.2 + litellm_params: + model: openai/gpt-5.2 + api_key: os.environ/OPENAI_API_KEY +- model_name: claude-haiku-4-5 + litellm_params: + model: anthropic/claude-haiku-4-5 + api_key: os.environ/ANTHROPIC_API_KEY +- model_name: azure-foundry-claude-haiku + litellm_params: + model: azure_ai/claude-haiku-4-5 + api_base: os.environ/AZURE_AI_API_BASE + api_key: os.environ/AZURE_AI_API_KEY +- model_name: gemini-2.5-flash-vertex + litellm_params: + model: vertex_ai/gemini-2.5-flash + vertex_project: os.environ/VERTEXAI_PROJECT + vertex_location: us-central1 + vertex_credentials: os.environ/VERTEXAI_CREDENTIALS +- model_name: gemini-2.5-flash + litellm_params: + model: gemini/gemini-2.5-flash + api_key: os.environ/GEMINI_API_KEY +- model_name: gemini-2.5-flash + litellm_params: + model: gemini/gemini-2.5-flash + api_key: os.environ/GEMINI_API_KEY +mcp_servers: + devin: + url: https://mcp.devin.ai/mcp + auth_type: api_key + auth_value: os.environ/DEVIN_API_KEY