Skip to content

Diff is incorrect when values in values.yaml change and --reuse-values is used #457

Open
@chaehni

Description

@chaehni

We realized that the produced diff is incorrect for a helm upgrade call if new values have been added to values.yaml.

Example:

  1. install any chart
  2. modify the chart such that it has a new value in values.yaml (e.g. new_label: testing)
  3. modify the chart to set this label in a ressource:
  labels:
    new_label: {{ .Values.new_label }}
  1. call helm diff upgrade <release> <chart> --reuse-values - the diff shows the new label as new_label: testing

This diff is incorrect. With --reuse-values the new value in values.yaml should not slip in. helm upgrade <release> <chart> --reuse-values --dry-run correctly generates the manifest with the label new_label: nil. This is correct, the value new_label does not exist in the original install and since we used --reuse-values the new base values are ignored.

I'm aware that I can tell helm diff to use --dry-run to generate the diff via env. But I feel like this should be the default. Forgetting to set the env creates diffs that are incorrect.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions