istio/istio · error
converting values: %v
Error message
converting values: %v
What it means
commonutil.ToRenderValues failed while coalescing the component chart's default values with the user's vals map to build Helm's render values. Coalescing errors when user values conflict in type with chart defaults at the same path, typically a scalar overwriting a map node or the reverse.
Source
Thrown at operator/pkg/helm/helm.go:93
Namespace: namespace,
}
caps := *common.DefaultCapabilities
// overwrite helm default capabilities
operatorVersion, _ := common.ParseKubeVersion("1." + strconv.Itoa(k8sversion.MinK8SVersion) + ".0")
caps.KubeVersion = *operatorVersion
if version != nil {
caps.KubeVersion = common.KubeVersion{
Version: version.GitVersion,
Major: version.Major,
Minor: version.Minor,
}
}
helmVals, err := commonutil.ToRenderValues(chrt, vals, options, &caps)
if err != nil {
return nil, nil, fmt.Errorf("converting values: %v", err)
}
files, err := engine.Render(chrt, helmVals)
if err != nil {
return nil, nil, err
}
crdFiles := chrt.CRDObjects()
if chrt.Metadata.Name == "base" {
enableIstioConfigCRDs, ok := values.GetPathAs[bool](vals, "base.enableIstioConfigCRDs")
if ok && !enableIstioConfigCRDs {
crdFiles = []chartv2.CRD{}
}
}
var warnings Warnings
// Create sorted array of keys to iterate over, to stabilize the order of the rendered templates
keys := make([]string, 0, len(files))View on GitHub (pinned to 8dc789c5cf)
Solutions
- Find the conflicting path from the wrapped error and match the chart's structure
- Set leaf keys, e.g. --set spec.values.global.mtls.enabled=true instead of --set spec.values.global.mtls
- Diff your values tree against charts/<component>/values.yaml
- Remove values that duplicate entire map nodes and keep only overridden leaves
Example fix
# before --set spec.values.global.mtls # after --set spec.values.global.mtls.enabled=true
Defensive patterns
Strategy: validation
Validate before calling
// Pre-flight: ensure user values coalesce with chart defaults
if _, err := commonutil.ToRenderValues(chrt, vals, options, &caps); err != nil {
return fmt.Errorf("values conflict with chart defaults: %w", err)
} Prevention
- Set leaf keys, not map parents, with --set
- Diff custom values against charts/<component>/values.yaml
- Keep only overridden leaves in values files
When it happens
Trigger: Setting a parent key that the chart defines as a map to a scalar, for example --set spec.values.global.mtls where the default is the map mtls.enabled, or YAML values writing gateways: false where the chart expects an object.
Common situations: Flattening or nesting mistakes in values files; --set applied to a parent instead of a leaf key; merging profiles with conflicting shapes.
Related errors
AI-assisted analysis of istio/istio@8dc789c5cf (2026-08-15).
Data as JSON: /api/errors/1ef6d6756b449332.
Report an issue: GitHub.