helm 3 安装 helm-diff 插件
helm plugin install https://github.com/databus23/helm-diff- helm 4 因为需要插件验证,添加标识
--verify=false
- 后续以 jenkins 为例
helm 获取当前 release 的 values 文件
helm get values <RELEASE_NAME> -n <NAMESPACE>- 默认只会输出用户显式设置的值,不包含默认值,也不包含安装后手动修改的部分
--all包含默认值--revision=<num>获取历史版本的 valueshelm history <RELEASE_NAME> -n <NAMESPACE>
helm get values jenkins -n jenkins --all > values.live-5.8.115.yaml
通过 jd 查看 jenkins 版本变更导致的差异
jd -yaml -f jd -o diff-5.8.115_5.8.130.patch.jd \ values.default-5.8.115.yaml values.default-5.8.130.yaml- 查看默认 values 升级带来的差异并制作为补丁文件
jd -yaml -p diff-5.8.115_5.8.130.patch.jd \ values.live-5.8.115.yaml > values.upgrade-5.8.130.yaml- 对现有 values 进行修补
jd -yaml -f jd -o diff-upgrade-5.8.115_5.8.130.patch.jd \ values.live-5.8.115.yaml values.upgrade-5.8.130.yaml- 比较现有 values 修补前后的差异并制作为补丁文件
diff -u diff-5.8.115_5.8.130.patch.jd diff-upgrade-5.8.115_5.8.130.patch.jd- 最后查看两个差异补丁是否一致,确认是否需要对现有 values 进行更新
- 默认 values 升级带来的差异
- 现有 values 修补前后的差异
helm diff upgrade 直接查看版本升级差异
helm diff upgrade jenkins jenkins/jenkins \ -n jenkins --version 5.8.130 \ --reuse-values \ --context 5 --normalize-manifests --three-way-merge \ --suppress-output-line-regex="helm.sh/chart" --suppress-output-line-regex="version"--reuse-values复用现有 release 的 values--context 5显示 diff 部分周围的上下文行数--normalize-manifests格式化以排除格式影响--three-way-merge参考 last applied, live state 与 new desired 进行比较- 默认为 false,不考虑 live state 即 applied 之后的更改
--suppress-output-line-regex使用正则表达式抑制匹配的 diff 输出行- 过滤 chart 版本变化
- 类似还有
--suppress stringArray指定 k8s Kind
- Author:白鸟3
- URL:https://blog.kun2peng.top/develop/k8s_helm_diff
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
