Skip to content

Conversation

@yxxhero
Copy link
Collaborator

@yxxhero yxxhero commented Feb 9, 2026

When using helm-diff with Helm v4.0.0, code was adding both --dry-run=server (for validation) and --dry-run=client (default for helm template), creating a conflict. This caused .Capabilities.APIVersions.Has to be incorrectly evaluated, resulting in incorrect diff output.

Changes:

  • Add helper function getValidateFlag() to avoid code duplication
  • Only return --validate flag for Helm v3 (not v4) when validation is enabled
  • Remove the logic that adds --dry-run=server for validation in Helm v4
  • Add --dry-run=client for Helm v4 when using helm upgrade --dry-run (when HELM_DIFF_UPGRADE_DRY_RUN is set and version doesn't support dry-run lookup)
  • Simplify comments in helm template section

This fixes the issue where .Capabilities.APIVersions.Has was incorrectly filled when using Helm v4.0.0, which caused helm-diff to incorrectly show code blocks as deleted when they should not be.

When using helm-diff with Helm v4.0.0, code was adding both
--dry-run=server (for validation) and --dry-run=client (default for helm template),
creating a conflict. This caused .Capabilities.APIVersions.Has to be incorrectly
evaluated, resulting in incorrect diff output.

Changes:
- Add helper function getValidateFlag() to avoid code duplication
- Only return --validate flag for Helm v3 (not v4) when validation is enabled
- Remove the logic that adds --dry-run=server for validation in Helm v4
- Add --dry-run=client for Helm v4 when using helm upgrade --dry-run
  (when HELM_DIFF_UPGRADE_DRY_RUN is set and version doesn't support dry-run lookup)
- Simplify comments in helm template section

This fixes the issue where .Capabilities.APIVersions.Has was incorrectly filled
when using Helm v4.0.0, which caused helm-diff to incorrectly show
code blocks as deleted when they should not be.

Signed-off-by: yxxhero <aiopsclub@163.com>
Signed-off-by: yxxhero <aiopsclub@163.com>
@yxxhero yxxhero closed this Feb 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant