Problem
Two bugs affect nvca-operator 3.1.0 upgrades:
Bug 1 - Wrong clusterSource default
The 3.1.0 chart bakes ngcConfig.clusterSource: self-managed as the default. The correct
default for the public chart is ngc-managed. NGC UI-generated install commands do not pass
--set ngcConfig.clusterSource=..., so any cluster installed with the 3.1.0 chart without
an explicit override never registers with the NVCA agent.
Bug 2 - Nil pointer on upgrade from 3.0.x
deploy/helm/nvca-operator/nvca-operator/templates/self-managed-nvcfbackend-cm.yaml evaluates
.Values.selfManaged.imageCredHelper.imageRepository and .Values.selfManaged.sharedStorage.imageRepository
unconditionally in the ConfigMap metadata section before the clusterSource guard on line 37.
These sub-keys were added in 3.1.0. When upgrading from 3.0.x with --reuse-values, the stored
values do not contain these sub-keys, making their parent maps nil. Accessing .imageRepository
on a nil interface panics with: nil pointer evaluating interface {}.imageRepository.
This panic affects all cluster types (including ngc-managed) because the metadata block runs
regardless of clusterSource.
Fix
- Restore
ngcConfig.clusterSource: ngc-managed as the chart default in both the vendoring
script and the published values.yaml.
- Add
ngcConfig.clusterSource: self-managed to the self-managed stack helmfile so that
self-hosted installs continue to work correctly.
- Use
| default dict before accessing .imageRepository on selfManaged.imageCredHelper
and selfManaged.sharedStorage to guard against nil parents on upgrade.
Problem
Two bugs affect nvca-operator 3.1.0 upgrades:
Bug 1 - Wrong clusterSource default
The 3.1.0 chart bakes
ngcConfig.clusterSource: self-managedas the default. The correctdefault for the public chart is
ngc-managed. NGC UI-generated install commands do not pass--set ngcConfig.clusterSource=..., so any cluster installed with the 3.1.0 chart withoutan explicit override never registers with the NVCA agent.
Bug 2 - Nil pointer on upgrade from 3.0.x
deploy/helm/nvca-operator/nvca-operator/templates/self-managed-nvcfbackend-cm.yamlevaluates.Values.selfManaged.imageCredHelper.imageRepositoryand.Values.selfManaged.sharedStorage.imageRepositoryunconditionally in the ConfigMap metadata section before the
clusterSourceguard on line 37.These sub-keys were added in 3.1.0. When upgrading from 3.0.x with
--reuse-values, the storedvalues do not contain these sub-keys, making their parent maps nil. Accessing
.imageRepositoryon a nil interface panics with:
nil pointer evaluating interface {}.imageRepository.This panic affects all cluster types (including ngc-managed) because the metadata block runs
regardless of
clusterSource.Fix
ngcConfig.clusterSource: ngc-managedas the chart default in both the vendoringscript and the published values.yaml.
ngcConfig.clusterSource: self-managedto the self-managed stack helmfile so thatself-hosted installs continue to work correctly.
| default dictbefore accessing.imageRepositoryonselfManaged.imageCredHelperand
selfManaged.sharedStorageto guard against nil parents on upgrade.