gpt4 book ai didi

kubernetes-helm - helm chart - 值文件变量

转载 作者:行者123 更新时间:2023-12-05 06:04:14 26 4
gpt4 key购买 nike

我正在使用 helm 图表(带有子图表)来部署我的应用程序。我正在使用值文件来设置值。

我正在寻找一种在我的值文件(或任何其他地方)中设置对我的值文件有效的变量的方法。

我的值文件中有一些部分(服务)需要在其中使用相同的值所以我在我的值文件中寻找一个变量。有什么方法可以为我的值文件使用变量吗?谢谢

最佳答案

Helm 本身无法做到这一点。

如果您控制所有图表和子图表,则可以允许特定值嵌入 Go 模板。 Helm 包含一个 tpl扩展函数,可让您将任意字符串呈现为模板。所以如果你有值(value)观

global:
commonKey: some value
otherKey: '{{ .Values.global.commonKey }}'

然后你就可以渲染了

- name: OTHER_KEY
value: '{{ tpl .Values.otherKey . }}'

但是,您必须在每个访问键值的地方使用tpl;如果您不控制子图表,您可能无法执行此操作。

高级工具也可以让您这样做。我特别熟悉 Helmfile它可以让您声明多个 Helm 图表及其设置,还可以让您在许多地方使用几乎与 Helm 相同的模板。所以你的 helmfile.yaml 可以指定:

environments:
default:
# These values are available when rendering templates in this file
values:
- commonKey: some value
releases:
- name: my-service
namespace: my-service
chart: ./charts/my-service
values:
# List items can be file names or YAML dictionaries.
# If it's a dictionary, arbitrary nested values.yaml content.
# If it's a *.yaml.gotmpl file name, templating is applied to the file.
- otherKey: '{{ .Values.commonKey }}'
yetAnotherKey: '{{ .Values.commonKey }}'
- ./my-service.yaml.gotmpl

Helmsman更简单,但只能从环境变量设置图表值;但我相信您可以在不同的 setString: 选项中引用相同的环境变量。您也可以对 Terraform Helm provider 做类似的事情,使用 Terraform 的原生表达式语法,尤其是在您已经熟悉 Terraform 的情况下。

关于kubernetes-helm - helm chart - 值文件变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66441430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com