kubernetes 有没有一种方法可以检测对Helm Chart部署的资源所做的更改

ztmd8pv5  于 2023-04-11  发布在  Kubernetes
关注(0)|答案(2)|浏览(162)

我们部署了几个资源作为helm(v3)图表的一部分。不久前,我通过kubectl手动更改了helm图表部署的资源。这导致helm版本部署的yaml资源值(如helm get values <release>所示)与集群中实际部署的资源值之间存在一些偏差
示例:kubectl describe deployment <deployment>显示了通过kubectl re-apply手动应用的更新后的映像。而helm show values <release>显示了helm用于上述部署的原始映像。
我意识到我应该使用修改后的values.yaml文件执行helm upgrade来执行映像更改,但我想知道是否有一种方法可以使我手动更新的值的状态与helm版本中的值同步。目标是创建一个新的默认values.yaml,以反映集群资源的当前状态。
谢谢!

4uqofj5v

4uqofj5v1#

这是一个社区wiki的答案张贴更好的知名度。随时扩大它。
根据Helm issue 2730,该功能不会添加到Helm中,因为它超出了项目范围。
看起来Helm中没有现成的工具,这将有助于将life kubernetes资源移植/调整回现有或新的helm图表/版本。
基于此,您可以使用以下选项之一:
1.正如@大卫迷宫所建议的那样。Helm Diff Plugin将向您显示图表输出和集群之间的差异,但随后您需要手动更新values.yaml和模板。

  1. helm-adopt plugin是一个helm插件,用于将现有的k8s资源应用到新生成的helm图表中。
laximzn5

laximzn52#

kubectl diff将帮助识别更改,但需要manifest来完成。必须从helm生成manifest,并通过运行kubectl diff来识别每个manifest的漂移。

我创建了一个helm插件helm-drift(严重依赖于kubectl diff),负责helmkubectl-diff之间的通信,以识别漂移。

相关问题