How databus23/helm-diff works
Helm Diff is a Helm plugin that previews Kubernetes resource changes, primarily by comparing a deployed release with a chart rendered for an upgrade. Its commands also compare release revisions, preview rollbacks, and compare two local charts. The graph follows the command entry points into Helm-backed manifest acquisition, manifest parsing and optional live-object merging, then diff computation and report output. README capabilities are included, but unsampled command implementations are represented only at their supported source paths; their internal wiring is not inferred.
Main entry points: diff.go Diff engine · root.go CLI root · upgrade.go Upgrade preview · helm.go Helm bridge
Components 15
Plugin commands
- CLI root
cmd/root.go - Upgrade preview
cmd/upgrade.go - Revision diff
cmd/revision.go - Rollback preview
cmd/rollback.go - Local chart diff
cmd/local.go
Manifest acquisition
- Helm bridge
cmd/helm.go - Manifest parsing
manifest/parse.go - Live merge
manifest/generate.go
Diff and reports
- Diff engine
diff/diff.go - Structured changes
diff/structured.go - Report output
diff/report.go - External diff tool
diff/difftool.go
Other components
- Helm user
- Helm CLI
- Kubernetes API
Connections 22
- Helm user → CLI root: invokes
- CLI root → Upgrade preview: dispatches
- CLI root → Revision diff: dispatches
- CLI root → Rollback preview: dispatches
- CLI root → Local chart diff: dispatches
- Upgrade preview → Helm bridge: fetches and renders
- Revision diff → Helm bridge: fetches revisions
- Rollback preview → Helm bridge: fetches releases
- Helm bridge → Helm CLI: runs commands
- Helm bridge → Manifest parsing: parses manifests
- Local chart diff → Helm CLI: renders charts
- Local chart diff → Manifest parsing: parses manifests
- Upgrade preview → Live merge: merges live state
- Live merge → Kubernetes API: reads and patches
- Upgrade preview → Kubernetes API: checks cluster access
- Upgrade preview → Diff engine: compares manifests
- Revision diff → Diff engine: compares revisions
- Rollback preview → Diff engine: compares releases
- Local chart diff → Diff engine: compares manifests
- Diff engine → Structured changes: builds field changes
- Diff engine → Report output: creates report
- Report output → External diff tool: uses configured tool