Skip to content

feat(helm): add values comparison for install, upgrade and release detail - #662

Open
yupanzi wants to merge 1 commit into
kite-org:mainfrom
yupanzi:feature/helm-values-diff
Open

feat(helm): add values comparison for install, upgrade and release detail#662
yupanzi wants to merge 1 commit into
kite-org:mainfrom
yupanzi:feature/helm-values-diff

Conversation

@yupanzi

@yupanzi yupanzi commented Jul 30, 2026

Copy link
Copy Markdown

Summary

Add a values comparison view for Helm install, upgrade, and release detail:

  • helm-install-dialog: a new Compare values toggle shows a monaco diff editor instead of the plain editor. On install it compares against the chart's package defaults; on upgrade you can choose the baseline — Deployed values or Package values — with side-by-side / inline and highlight-changes options.
  • helmrelease-detail: deployed values can now be viewed and compared across revisions from the release detail page.
  • values-diff-editor: shared component wrapping the monaco diff editor (lazy-loaded like the existing editor).
  • helm-values: normalization helpers (stable key order, blank-run collapsing) so the diff highlights real changes instead of formatting noise — unit-tested.
  • chart version sorting: versions are now ordered by semver with publish time only as a tie-breaker, so the upgrade dropdown is correct for repackaged/backported indexes (previously publish time won, which could put an older version on top).
  • e2e: the helm spec now covers the comparison flow; window.monaco is exposed so tests can drive the editors, matching what the AMD build already did.
  • New yaml runtime dependency for values normalization.

Why

When installing or upgrading a chart it is easy to lose track of what actually changed in the values, especially on upgrades where the edited values drift from both the chart defaults and what is currently deployed. Kubeapps solves this with a values diff view; this PR brings the same idea to Kite.

Related issue

Closes #667

Validation

  • go test ./pkg/helm/... (new content_test.go covers the version ordering)
  • pnpm run type-check && pnpm run lint && pnpm run test (new helm-values.test.ts)
  • make e2e-run SPEC=specs/helm-kite.spec.ts flow extended for the diff view

Checklist

  • I reviewed this PR myself before requesting review.
  • I understand the changes, including AI-generated parts (if any).
  • For new features, a feature request issue is linked.
  • I cleaned up AI noise (unnecessary comments, dead code, and unrelated changes).
  • This PR is reasonably scoped (or split into smaller PRs).

🤖 Generated with Claude Code

…tail

Add a monaco-based diff view (kubeapps-style) so value changes can be
reviewed before they are applied:

- helm-install-dialog: compare the edited values against the chart's
  package defaults or, on upgrade, the currently deployed values, with
  side-by-side / inline and highlight-changes toggles
- helmrelease-detail: view and compare deployed values across revisions
- helm-values: shared normalization helpers with unit tests
- sort chart versions by semver (publish time only as tie-breaker) so
  the upgrade dropdown is ordered correctly for repackaged indexes
- expose window.monaco so e2e specs can drive the diff editors, and
  extend the helm e2e spec to cover the comparison flow

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

Show a values diff when installing or upgrading Helm releases

1 participant