NVIDIA / NVIDIA/NeMo-Retriever

BUG]: Duplicate NEMOTRON_PARSE_HTTP_ENDPOINT env var causes upgrade failure when enabling nemotron_parse

Open Beginner friendly
#1,685 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3k
Forks
349
Avg merge
1d 23h
Merged PRs (30d)
116

Description

Version

26.1.2

Installation method

Kubernetes/Helm (NIM Operator mode)

Describe the bug

When upgrading an nv-ingest deployment from nemotron_parse.enabled: false to nemotron_parse.enabled: true, the Helm upgrade fails with a "duplicate entries for key" error for the NEMOTRON_PARSE_HTTP_ENDPOINT environment variable.

This occurs because the env var is defined in two places:

  1. Statically in values.yaml under the envVars: section (always rendered):
envVars:
  # ...
  NEMOTRON_PARSE_HTTP_ENDPOINT: http://nemotron-parse:8000/v1/chat/completions
  NEMOTRON_PARSE_INFER_PROTOCOL: http
  NEMOTRON_PARSE_MODEL_NAME: nvidia/nemotron-parse
  1. Conditionally in deployment.yaml (rendered when nemotron_parse is enabled):
{{- if and (hasKey .Values "nimOperator") (hasKey .Values.nimOperator "nemotron_parse") (eq .Values.nimOperator.nemotron_parse.enabled true) }}
- name: NEMOTRON_PARSE_HTTP_ENDPOINT
  value: "http://nemotron-parse:8000/v1/chat/completions"
{{- end }}

When nemotron_parse.enabled: true, both definitions are rendered, causing the duplicate key error.

Error message

Error: UPGRADE FAILED: failed to create typed patch object (nim/nv-ingest; apps/v1, Kind=Deployment): .spec.template.spec.containers[name="nv-ingest"].env: duplicate entries for key [name="NEMOTRON_PARSE_HTTP_ENDPOINT"]

Steps to reproduce

  1. Deploy nv-ingest 26.1.2 with nimOperator.nemotron_parse.enabled: false
  2. Upgrade with nimOperator.nemotron_parse.enabled: true
  3. Observe the duplicate key error

Expected behavior

The upgrade should succeed. The NEMOTRON_PARSE_* env vars should only be defined in one place - either:

  • Remove them from the static envVars section in values.yaml, OR
  • Remove the conditional block in deployment.yaml

The conditional approach in deployment.yaml seems more appropriate since these env vars are only needed when nemotron_parse is enabled.

Workaround

Manually edit the local chart's values.yaml to remove the three static NEMOTRON_PARSE_* entries before deploying:

sed -i '/NEMOTRON_PARSE_HTTP_ENDPOINT/d' nv-ingest/values.yaml
sed -i '/NEMOTRON_PARSE_INFER_PROTOCOL/d' nv-ingest/values.yaml
sed -i '/NEMOTRON_PARSE_MODEL_NAME/d' nv-ingest/values.yaml

Affected files

  • values.yaml (lines containing NEMOTRON_PARSE_* under envVars)
  • templates/deployment.yaml (conditional block adding NEMOTRON_PARSE_HTTP_ENDPOINT)

Suggested fix

Remove the three NEMOTRON_PARSE_* entries from the envVars: section in values.yaml, since they are already conditionally added by deployment.yaml when nemotron_parse is enabled.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with values.yaml and templates/deployment.yaml, then render the Helm chart with nemotron_parse enabled and compare the generated environment entries. Remove the duplicate NEMOTRON_PARSE_* definitions as indicated by the issue, and verify that an upgrade from disabled to enabled renders one definition per variable without the duplicate-key error.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes
Domain
devops
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.