https://github.com/flavono123/helm-dyff
A helm3 plugin, dyff between the current release and new one with a new chart version and values.
https://github.com/flavono123/helm-dyff
chart diff dyff helm helm-plugin
Last synced: 2 months ago
JSON representation
A helm3 plugin, dyff between the current release and new one with a new chart version and values.
- Host: GitHub
- URL: https://github.com/flavono123/helm-dyff
- Owner: flavono123
- License: mit
- Created: 2024-11-17T02:55:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-18T16:14:47.000Z (over 1 year ago)
- Last Synced: 2025-12-25T23:35:31.252Z (6 months ago)
- Topics: chart, diff, dyff, helm, helm-plugin
- Language: Go
- Homepage:
- Size: 74.5 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# helm-dyff


[](https://goreportcard.com/report/github.com/flavono123/helm-dyff)
A helm3 plugin, dyff between the current release and new one with a new chart version and values.

## Concept
To dry-run the upgrade of a release with a new chart version, usually do this with [`dyff`](https://github.com/homeport/dyff), my favorite diff tool and too long and several times of `helm` calls:
```sh
❯ dyff bw ib \
# from this, the current release's mainfests
<(heml get manifest myrelease) \
# to this, the new one i want to upgrade
<(helm template myrelease myrepo/mychart --version x.y.z -f <(helm get values myrelease))
```
Sometimes, the new values are required:
```sh
❯ dyff bw ib \
<(heml get manifest myrelease) \
<(helm template myrelease myrepo/mychart --version x.y.z -f <(helm get values myrelease) -f new-values.yaml ...)
```
What if the current context is not in the same namespace as the release:
```sh
❯ dyff bw ib \
<(heml get manifest myrelease -n mynamespace) \
<(helm template myrelease myrepo/mychart --version x.y.z -f <(helm get values myrelease -n mynamespace) -f new-values.yaml ... -n mynamespace)
```
## Use cases and examples
### New chart version
dyff with the new chart version:
```sh
❯ helm dyff upgrade myrelease myrepo/mychart -v x.y.z
```
### New values
dyff with the new values *ammended*(would overwrite to the current release's one):
```sh
❯ helm dyff upgrade myrelease myrepo/mychart -f new-values.yaml
```
or just with the new values, disabling the default option:
```sh
❯ helm dyff upgrade myrelease myrepo/mychart -f new-values.yaml --ammend false
```
## Installation
```sh
❯ helm plugin install https://github.com/flavono123/helm-dyff
```
## TODO
- ci
- [ ] support `helm plugin update`
- [ ] unit tests
- [ ] bump a tag, release at once