如何在使用命令行设置 values.helm install 时将参数键值持久化到 values.yaml 文件。 --name test --set image.tag=2020 --set image.version=20 如何更新这个image.tag和image.version值到values.yaml?空运行将给出结果但不会更新 values.yaml

最佳答案

Helm 是一个包管理器,它是关于自动化 kubernetes 应用程序的部署。它被设计为有点静态,并且只能由图表的创建者更改。

  • Values Files 提供对传递到图表中的值的访问。其内容来自多个来源:

  • 这是值文件的基本层次结构,但还有更多内容:

  • kubernetes - 如何在 helm install/upgrade 中坚持 --set 键值到 values.yaml-LMLPHP
    感谢这张图片的创作者,不幸的是我找不到作者来感谢他。
  • 您不能完全按照您的想法更改图表 values.yaml 文件,因为原始 values.yaml 将保持图表创建者所需的状态。
  • 上面的流程图都是关于在 helm installhelm upgrade 期间所做的更改。


  • 我将尝试举例说明您的使用场景:
  • 图表 1 具有以下默认值:
  • image: original-image
    version: original-version
    
  • 您决定部署此图表,使用 --set 更改一些值,如您的示例 helm install --name abc --set image=abc --set version-123 。结果:
  • image: abc
    version: 123
    
  • 然后你想升级图表并修改 version 值但保持其他值不变,你运行:`helm upgrade --set version=124 --reuse-values,这是有效的结果值:
  • image: abc
    version: 124
    

    注意: 正如我们在流程图中看到的, 如果你不指定 --reuse-values 它将在升级期间重置不是 --set 的值,以恢复到图表的原始值。在这种情况下, image 将再次是 original-image

    所以,结束你的主要问题:



    您可以始终使用 --setupgrade 期间保留 --reuse-values 值,但是更改永远不会提交到 values.yaml 文件的原始模板。

    如果您是图表的所有者,建议您创建图表的发布版本,这样您就可以跟踪每个版本中的默认设置。

    我希望它有助于澄清问题。

    如果我能进一步帮助您,请在评论中告诉我。

    关于kubernetes - 如何在 helm install/upgrade 中坚持 --set 键值到 values.yaml,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62249179/

    10-15 21:52