Skip to main content
On-premises Configure model access before you install Qodo. Connect the AI gateway to your model providers, then match Qodo’s application settings to the gateway’s model names. The examples configure review models for OpenAI, Azure OpenAI, Anthropic, Amazon Bedrock, Vertex AI, and the Gemini API. They retain GPT chat and OpenAI-compatible embedding routes for Platform and Context Engine.
Selecting a provider for code review does not move every Qodo feature to that provider. Platform, Context Engine, and SDK agents have separate model requirements. A deployment that must exclude OpenAI models needs a Qodo-validated configuration for all enabled features.
Use the exact Helm keys and Kubernetes resource names shown in the examples. These are the names shipped by the chart.

Understand the two connections

Qodo applications authenticate to the bundled gateway. The gateway then authenticates to your upstream endpoint or model provider. The chart connects applications to the bundled gateway automatically. Keep global.llm.bundled: true. Do not put a provider key in an application gateway-key setting. If Argo CD manages your installation, pre-provision the internal credentials through your release’s external-secret procedure. For more information, see Manage Qodo secrets with External Secrets Operator.

Match model names at both ends

A gateway model_name is the name applications request. litellm_params.model identifies the model or deployment at the upstream provider. Merge removes one outer openai/ prefix before sending a request. That prefix selects the gateway client. It does not identify the upstream provider. Keep recognizable model-family names. Mapping a GPT alias to Claude or Gemini can make applications send the wrong reasoning or structured-output parameters. Generic aliases can also remove model capability and context-window information. Merge treats _thinking as an application suffix and removes it before the request. The examples preserve this suffix for the main review agent, ensemble, and subagent stages. Verify the selected provider’s reasoning parameters and token budget during application acceptance. Review modes such as regular and turbo are application selectors, not gateway model names.

1. Prepare the baseline routes

Save this overlay as llm-base-values.yaml. Replace the example endpoint with your approved OpenAI-compatible endpoint. It must serve the GPT chat models and embeddings shown below.
llm-base-values.yaml
For direct OpenAI access, set openaiBaseUrl: "". The gateway then uses the provider’s default endpoint. Direct access requires outbound connectivity. Supply the endpoint credential in qodo-openai, under OPENAI_API_KEY. The Secret remains required when you add another review provider.
A non-empty modelMap makes the chart generate routes from that map instead of its built-in routes. Helm still merges map entries across values files. Check the final rendered map. Apply this baseline with the application overrides in the next section.extraModelList appends routes. Do not publish the same name in both settings. Duplicate names create multiple upstream routes and can send requests to the wrong provider.
The baseline deliberately publishes both bare and prefixed GPT names. Keep openai/ in Context Engine’s ONPREM_MODELS__* settings, as shown below. Its model client removes that provider prefix before sending the gateway request. Platform also normalizes discovered model names. Merge uses the prefixed names in these examples. You can use global.llm.extraHeaders for non-secret attribution headers. Confirm the exact header name with your gateway administrator. These headers apply to all routes, including embeddings and additional providers.

2. Select the review provider

Choose one provider tab. Save its complete overlay as llm-provider-values.yaml. Replace marked values before deploying. The model names illustrate routing. Confirm model access, deployment names, capacity, and review suitability with Qodo and your provider administrator. All ten Merge settings are included. Changing only CONFIG__MODEL leaves other review stages, fallbacks, or subagents on their previous models. List-valued settings must remain JSON strings. Choose a fallback model different from the primary model. These examples use the fast model as the fallback.
Use this overlay with the baseline routes. It selects GPT models for every review stage. For direct access, use the empty endpoint setting described above.
llm-provider-values.yaml
The chart enables OPENAI__RESPONSE_API: "true". Verify Responses, streaming, and tool calls through your upstream endpoint. A service that implements only Chat Completions does not satisfy this configuration.For more information, see OpenAI-compatible endpoints.
The Claude routes include prompt-cache injection at the last message boundary. Cache use depends on provider requirements. Verify cache reads in usage records. For more information, see prompt caching.

3. Preserve the other application routes

The chart supplies the base URLs and internal gateway key for the applications below. The review overrides above do not change these settings. Platform agent settings use provider:model syntax, such as openai:gpt-5.2. This differs from Merge’s slash-separated client routing. Do not copy one application’s value into another application’s setting. The chart selects Context Engine’s on-prem model configuration. AI_GATEWAY__* settings belong to a different Engine configuration and do not replace the ONPREM_MODELS__* settings shown above. Platform uses DYNACONF_LLM_GATEWAY__*, which the chart supplies.

Keep embedding dimensions compatible

The same embedding route must honor both requests: Keep text-embedding-3 in the embedding alias. The gateway’s model handling uses this name when forwarding the dimensions parameter. For more information, see embedding parameter handling. An arbitrary embedding model is not a compatible replacement. Do not change dimensions, embedding models, or stored indexes independently. Coordinate such changes with Qodo before migrating existing data.

Include SDK agent models

SDK and CLI agent topologies can request additional gateway aliases. Review their configured models before enabling those workflows. The packaged diagnostic agents request anthropic/claude-haiku-4-5. The Anthropic and Bedrock examples above publish this alias. The OpenAI, Azure, Vertex AI, and Gemini API examples do not add that diagnostic route. If you use those agents, add an approved Claude route to the same extraModelList before invoking them. A successful runtime HTTP health check does not verify an agent’s model route. Custom agent topologies can require other models too.

4. Create provider Secrets and apply the overlays

Create Secrets in the installation namespace before deploying Qodo. Use your approved secret manager or ESO when available. For more information, see Manage Qodo secrets with External Secrets Operator. For a new single-key Secret, this Bash example keeps the credential out of the command text. Select your installation’s Kubernetes context and namespace. For an existing installation, retain its Helm release name. Replace the context placeholder, then change the Secret name and key for your provider:
For qodo-openai, use the Secret key OPENAI_API_KEY. For Vertex AI, import the approved credential file as qodo-vertex with the key credentials.json. Do not place credentials in values files or commit them to Git. Use the chart and installation procedure supplied with your release. Add the overlays after your existing customer values:
Set RELEASE to your existing release name. Preserve that name on upgrades. Treat rendered manifests as sensitive because they can contain Secrets. Inspect the generated model names, upstream endpoints, credential references, and qodo-merge-custom-env. Check that every selected Merge model has an exact gateway alias after removing its outer openai/ prefix and trailing _thinking suffix. Helm merges maps but replaces lists. Keep all selected provider routes in one extraModelList. A later overlay with that list replaces earlier entries. Use the same values order for readiness checks and deployment. For more information, see Deploy Qodo using Helm. If the gateway’s upstream endpoint uses a private CA, obtain a supported gateway trust configuration from Qodo before connecting it. The standard custom-ca-cert Secret configures covered Qodo applications, but excludes bundled AI gateway. For more information, see Private certificate authority.

5. Verify model access and application behavior

A healthy Pod or a successful /models response does not verify inference, tool calls, or embeddings. First, wait for the gateway and review workloads to complete their rollouts. For a local diagnostic connection, set the same context and namespace in a separate terminal, then open the connection:
The following requests use the local forwarded port. Enter the internal gateway key from your approved secret store. Do not enter your provider key. Run these commands in Bash. The header uses a separate file descriptor to keep the key out of curl process arguments:
Confirm that the baseline aliases and both selected provider aliases appear.
Use this test for the selected review alias. It also covers the Chat Completions path used by classic reviews and SDK agents. Replace the example with your gateway alias, without Merge’s outer prefix.
Expect true. Repeat for the fast alias. Verify streaming and a subsequent tool-result turn in an actual review.
Use the advertised GPT alias. Keep this check even when your review provider is Claude or Gemini, because Platform has its own GPT agent paths.
Repeat with openai/gpt-5.1 for the fast review model. Test both medium and low reasoning effort for the enabled review stages. Also test the bare gpt-5.2 and gpt-5.1 aliases used by other applications. A successful Chat Completions request does not establish Responses support.OPENAI__RESPONSE_API controls Merge’s GPT path. Setting it to "false" does not disable Platform’s independent Responses selection.
Agentic Claude reviews use Messages. The Bedrock example exposes the same alias through the AI gateway, which translates the upstream request.
Repeat with anthropic/claude-haiku-4-5. Verify reasoning, tool calls, structured findings, and streaming in an actual agentic review.
Run both requests through the shared embedding route. The returned vector length must match each requested dimension.
Expect true twice. A missing or incorrect vector length requires investigation before indexing or rule processing.
After the gateway checks, run unset LLM_GATEWAY_API_KEY. Finally, complete the application checks:
  1. Run a normal review against a representative Pull Request (PR).
  2. Run the review modes and fallback paths enabled for your installation.
  3. Confirm that structured findings appear in the Git provider and portal.
  4. Index a repository and verify Context Engine retrieval.
  5. Verify rule ingestion and rule similarity.
  6. Invoke each enabled SDK agent and verify its model route.
  7. Confirm the selected upstream models in your gateway’s routing or usage records.
Record which providers, protocols, and workflows passed. Do not treat a gateway smoke test as complete application validation.

Apply configuration updates and rotate credentials

Apply changes through your existing Helm or GitOps release process. Confirm that the gateway loads the new model configuration. A Secret update alone does not restart Pods or refresh environment variables. When rotating a provider credential, wait for Secret synchronization, restart the gateway through your deployment process, and repeat inference checks. If the internal gateway key changes, every application consumer must receive the same replacement key. For the complete rotation procedure, see Manage Qodo secrets with External Secrets Operator.

Troubleshoot model access