From f07596a5fdf9cefb9e49212477b08ebc1d68444d Mon Sep 17 00:00:00 2001 From: Yassin Kortam Date: Mon, 19 Oct 2026 12:21:18 -0700 Subject: [PATCH] fix(helm): stop litellm-helm from injecting placeholder models into every install (#47056) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- helm/litellm-helm/README.md | 13 +++++++--- helm/litellm-helm/tests/deployment_tests.yaml | 26 +++++++++++++++++++ helm/litellm-helm/values.yaml | 12 +-------- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/helm/litellm-helm/README.md b/helm/litellm-helm/README.md index ff432c451e5..e059d45e037 100644 --- a/helm/litellm-helm/README.md +++ b/helm/litellm-helm/README.md @@ -70,11 +70,18 @@ proxyConfigMap: proxy_config: general_settings: master_key: os.environ/PROXY_MASTER_KEY + model_list: [] +``` + +The chart ships no models, so add them under `proxy_config.model_list` or from the Admin UI with `store_model_in_db: true` + +``` +proxy_config: model_list: - - model_name: gpt-3.5-turbo + - model_name: gpt-5.6 litellm_params: - model: gpt-3.5-turbo - api_key: eXaMpLeOnLy + model: openai/gpt-5.6 + api_key: os.environ/OPENAI_API_KEY ``` #### Example using existing `proxyConfigMap` instead of creating it: diff --git a/helm/litellm-helm/tests/deployment_tests.yaml b/helm/litellm-helm/tests/deployment_tests.yaml index ee946038202..292eeadfd13 100644 --- a/helm/litellm-helm/tests/deployment_tests.yaml +++ b/helm/litellm-helm/tests/deployment_tests.yaml @@ -270,6 +270,32 @@ tests: - matchRegex: path: data["config.yaml"] pattern: '(?m)^\s*health_check_details:\s*false$' + - it: should not render any placeholder models when the user sets proxy_config without model_list + template: configmap-litellm.yaml + set: + proxy_config.general_settings.store_model_in_db: true + asserts: + - notMatchRegex: + path: data["config.yaml"] + pattern: 'model_name:' + - matchRegex: + path: data["config.yaml"] + pattern: 'store_model_in_db: true' + - matchRegex: + path: data["config.yaml"] + pattern: 'master_key: os.environ/PROXY_MASTER_KEY' + - it: should render a user-supplied model_list as the only models + template: configmap-litellm.yaml + set: + proxy_config.model_list: + - model_name: my-model + litellm_params: + model: openai/my-model + api_key: os.environ/OPENAI_API_KEY + asserts: + - matchRegex: + path: data["config.yaml"] + pattern: 'model_list:\n- litellm_params:\n api_key: os.environ/OPENAI_API_KEY\n model: openai/my-model\n model_name: my-model\n$' - it: should allow overriding liveness, readiness, and startup probes template: deployment.yaml set: diff --git a/helm/litellm-helm/values.yaml b/helm/litellm-helm/values.yaml index 199c4595149..8450c5f2840 100644 --- a/helm/litellm-helm/values.yaml +++ b/helm/litellm-helm/values.yaml @@ -180,17 +180,7 @@ proxyConfigMap: # Examples: https://github.com/BerriAI/litellm/tree/main/litellm/proxy/example_config_yaml # Reference: https://docs.litellm.ai/docs/proxy/configs proxy_config: - model_list: - # At least one model must exist for the proxy to start. - - model_name: gpt-3.5-turbo - litellm_params: - model: gpt-3.5-turbo - api_key: eXaMpLeOnLy - - model_name: fake-openai-endpoint - litellm_params: - model: openai/fake - api_key: fake-key - api_base: https://exampleopenaiendpoint-production.up.railway.app/ + model_list: [] general_settings: master_key: os.environ/PROXY_MASTER_KEY