如何在使用命令行设置values.helm install的同时将参数键值持久保存到values.yaml文件。 --name测试--set image.tag = 2020 --set image.version = 20如何将这个image.tag和image.version值更新为values.yaml?空运行将给出结果,但不会更新values.yaml
答案 0 :(得分:2)
Helm 是一个程序包管理器,它全部与kubernetes应用程序的自动化部署有关。它被设计为静态的,并且只能由图表的创建者进行更改。
Values Files提供对传递到图表中的值的访问。其内容来自多种来源:
- 图表中的
values.yaml
文件- 如果这是子图表,则是父图表的
values.yaml
文件- 值文件,如果通过头盔安装或通过
通过-f
标志(helm install -f myvals.yaml ./mychart
)进行头盔升级--set
(例如helm install --set foo=bar ./mychart
)传递的- 单个参数
这是值文件的基本层次结构,但还有更多内容:
对这张图片的创作者表示敬意,不幸的是,我无法找到该作者来赞美他。
values.yaml
的文件,因为原始的values.yaml
将保持图表创建者所需的状态。helm install
或helm upgrade
期间所做的更改。我将尝试举例说明您的使用场景:
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
。
因此,总结您的主要问题:
如何持久化-在头盔安装/升级中将键值设置为values.yaml?
您可以始终使用--set
在upgrade
期间保留--reuse-values
值,但是更改永远不会提交到values.yaml
文件的原始模板。
如果您是图表的所有者,建议您创建图表的发行版本,这是您的行为,因此您可以跟踪每个版本的默认版本。
我希望它有助于澄清问题。
如果我可以进一步帮助您,请在评论中告诉我。
答案 1 :(得分:0)
当您使用kubectl get -o yaml准备好depl / change时,可以从kubes中复制东西 当然不是完全一样。