首页 > 解决方案 > 有没有办法检测 Helm Chart 部署的资源所做的更改

问题描述

我们部署了几个资源作为 helm (v3) 图表的一部分。前段时间,我通过kubectl. 这导致 helm release 部署的 yaml 资源中的值(如 所示helm get values <release>)与集群中实际部署的值之间存在一些偏差

示例:kubectl describe deployment <deployment>显示通过kubectl re-apply. 而helm show values <release>显示 helm 用于所述部署的原始图像。

我意识到我应该helm upgrade使用修改后的 values.yaml 文件来执行图像更改,但我想知道是否有办法让我将手动更新的值的状态与掌舵版本中的值同步。目标是创建一个values.yaml反映集群资源当前状态的新默认值。

谢谢!

标签: kuberneteskubernetes-helmkubectl

解决方案


这是为更好的可见性而发布的社区 wiki 答案。随意扩展它。

根据Helm 问题 2730 ,Helm中不会添加此功能,因为它超出了项目的范围。

看起来 Helm 没有现有的工具,这将有助于将生命 kubernetes 资源移植/调整回现有或新的 helm 图表/版本。

基于此,您可以使用以下选项之一:

  1. 正如@David Maze 所建议的那样。Helm Diff Plugin会显示图表输出和集群之间的差异,但随后您需要手动更新 values.yaml 和模板。
  2. helm-adopt 插件是一个 helm 插件,用于将现有的 k8s 资源采用到新生成的 helm chart 中。

推荐阅读